浏览代码

enhance: add views for DB unlinked references

follow up to #11739. Fixes https://github.com/logseq/db-test/issues/224
Gabriel Horner 7 月之前
父节点
当前提交
21f621848b

+ 0 - 1
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?)

+ 27 - 15
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}))]])))

+ 2 - 2
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