From 21f621848bd1bc3dadffb05b79bb0b99375a18fe Mon Sep 17 00:00:00 2001 From: Gabriel Horner Date: Thu, 27 Feb 2025 15:57:29 -0500 Subject: [PATCH] enhance: add views for DB unlinked references follow up to #11739. Fixes https://github.com/logseq/db-test/issues/224 --- src/main/frontend/components/page.cljs | 1 - src/main/frontend/components/reference.cljs | 42 +++++++++++++-------- src/main/frontend/components/views.cljs | 4 +- 3 files changed, 29 insertions(+), 18 deletions(-) diff --git a/src/main/frontend/components/page.cljs b/src/main/frontend/components/page.cljs index 59bfccc639..edfc2d28af 100644 --- a/src/main/frontend/components/page.cljs +++ b/src/main/frontend/components/page.cljs @@ -731,7 +731,6 @@ (hierarchy/structures (:block/title page)))) (when-not (or whiteboard? unlinked-refs? - db-based? sidebar? home? (or class-page? property-page?) diff --git a/src/main/frontend/components/reference.cljs b/src/main/frontend/components/reference.cljs index bad2c139e3..c6050efb4c 100644 --- a/src/main/frontend/components/reference.cljs +++ b/src/main/frontend/components/reference.cljs @@ -249,15 +249,25 @@ [state page _n-ref] (let [ref-blocks (rum/react (::result state))] (when (seq ref-blocks) - [:div.references-blocks - (let [ref-hiccup (block/->hiccup ref-blocks - {:id (str (:block/title page) "-unlinked-") - :ref? true - :group-by-page? true - :editor-box editor/box} - {})] - (content/content (:block/name page) - {:hiccup ref-hiccup}))]))) + (if (config/db-based-graph?) + (let [blocks (->> (mapcat val ref-blocks) + (map (fn [b] (assoc (db/entity (:db/id b)) :id (:db/id b))))) + columns' (columns {} blocks)] + (views/view + {:view-parent page + :view-feature-type :unlinked-references + :data blocks + :columns columns' + :foldable-options {:default-collapsed? true}})) + [:div.references-blocks + (let [ref-hiccup (block/->hiccup ref-blocks + {:id (str (:block/title page) "-unlinked-") + :ref? true + :group-by-page? true + :editor-box editor/box} + {})] + (content/content (:block/name page) + {:hiccup ref-hiccup}))])))) (rum/defcs unlinked-references < rum/reactive (rum/local nil ::n-ref) @@ -266,9 +276,11 @@ (when page [:div.references.page-unlinked.mt-6.flex-1.flex-row.faster.fade-in [:div.content.flex-1 - (ui/foldable - [:div.font-medium.opacity-50 - (t :unlinked-references/reference-count @n-ref)] - (fn [] (unlinked-references-aux page n-ref)) - {:default-collapsed? true - :title-trigger? true})]]))) + (if (config/db-based-graph?) + (unlinked-references-aux page n-ref) + (ui/foldable + [:div.font-medium.opacity-50 + (t :unlinked-references/reference-count @n-ref)] + (fn [] (unlinked-references-aux page n-ref)) + {:default-collapsed? true + :title-trigger? true}))]]))) diff --git a/src/main/frontend/components/views.cljs b/src/main/frontend/components/views.cljs index 9f413dc524..3780044712 100644 --- a/src/main/frontend/components/views.cljs +++ b/src/main/frontend/components/views.cljs @@ -1586,7 +1586,7 @@ (when add-new-object! (new-record-button table view-entity))]])) (rum/defc ^:large-vars/cleanup-todo view-inner < rum/static - [view-entity {:keys [view-parent data set-data! columns add-new-object!] :as option} + [view-entity {:keys [view-parent data set-data! columns add-new-object! foldable-options] :as option} *scroller-ref] (let [[input set-input!] (rum/use-state "") sorting* (:logseq.property.table/sorting view-entity) @@ -1707,7 +1707,7 @@ (view-cp view-entity (assoc table' :rows group) option view-opts)] {:title-trigger? false})))]) (view-cp view-entity table option view-opts)))] - {:title-trigger? false})])) + (merge {:title-trigger? false} foldable-options))])) (rum/defcs view-container "Provides a view for data like query results and tagged objects, multiple