Browse Source

fix: load whiteboard data for file graphs

Tienson Qin 9 months ago
parent
commit
3d238d22fc

+ 7 - 2
deps/db/src/logseq/db/common/sqlite.cljs

@@ -164,7 +164,8 @@
   (let [block (d/entity db (if (uuid? id)
                              [:block/uuid id]
                              id))
-        block-refs-count? (some #{:block.temp/refs-count} properties)]
+        block-refs-count? (some #{:block.temp/refs-count} properties)
+        whiteboard? (common-entity-util/whiteboard? block)]
     (when block
       (let [children (when (or children? children-only?)
                        (let [page? (common-entity-util/page? block)
@@ -182,7 +183,11 @@
                                              (:block/_parent block))))
                                        (remove (fn [e] (or (:logseq.property/created-from-property e)
                                                            (:block/closed-value-property e)))))
-                             children-props (or children-props [:db/id :block/uuid :block/parent :block/order :block/collapsed? :block/title :logseq.task/status :logseq.property.node/display-type])]
+                             children-props (if whiteboard?
+                                              '[*]
+                                              (or children-props
+                                                  [:db/id :block/uuid :block/parent :block/order :block/collapsed? :block/title
+                                                   :logseq.task/status :logseq.property.node/display-type]))]
                          (map
                           (fn [block]
                             (if (= children-props '[*])

+ 2 - 0
deps/shui/src/logseq/shui/hooks.cljs

@@ -26,6 +26,7 @@
   "setup-fn will be invoked every render of component when no deps arg provided"
   ([setup-fn] (rum/use-effect! setup-fn))
   ([setup-fn deps & {:keys [equal-fn]}]
+   (assert (fn? setup-fn) "use-effect! setup-fn should be a function")
    (rum/use-effect! (fn [& deps]
                       (let [result (apply setup-fn deps)]
                         (when (fn? result) result)))
@@ -37,6 +38,7 @@
 (defn use-layout-effect!
   ([setup-fn] (rum/use-layout-effect! setup-fn))
   ([setup-fn deps & {:keys [equal-fn]}]
+   (assert (fn? setup-fn) "use-layout-effect! setup-fn should be a function")
    (rum/use-layout-effect! (fn [& deps]
                              (let [result (apply setup-fn deps)]
                                (when (fn? result) result)))

+ 5 - 4
src/main/frontend/components/whiteboard.cljs

@@ -42,10 +42,11 @@
   (when page-uuid
     (let [[loading? set-loading!] (hooks/use-state true)]
       (hooks/use-effect!
-       (p/do!
-        (loader/load :tldraw)
-        (db-async/<get-block (state/get-current-repo) page-uuid)
-        (set-loading! false))
+       (fn []
+         (p/do!
+          (loader/load :tldraw)
+          (db-async/<get-block (state/get-current-repo) page-uuid)
+          (set-loading! false)))
        [])
       (when-not loading?
         (let [tldr (whiteboard-handler/get-page-tldr page-uuid)

+ 10 - 8
src/main/frontend/extensions/tldraw.cljs

@@ -237,9 +237,10 @@
   [page-uuid block-id loaded-app set-loaded-app]
   (let [[loading? set-loading!] (hooks/use-state true)]
     (hooks/use-effect!
-     (p/do!
-      (db-async/<get-block (state/get-current-repo) page-uuid)
-      (set-loading! false))
+     (fn []
+       (p/do!
+        (db-async/<get-block (state/get-current-repo) page-uuid)
+        (set-loading! false)))
      [])
     (when-not loading?
       (let [populate-onboarding? (whiteboard-handler/should-populate-onboarding-whiteboard? page-uuid)
@@ -261,9 +262,10 @@
   [page-uuid block-id]
   (let [page-uuid (str page-uuid)
         [loaded-app set-loaded-app] (rum/use-state nil)]
-    (hooks/use-effect! (fn []
-                         (when (and loaded-app block-id)
-                           (state/focus-whiteboard-shape loaded-app block-id))
-                         #())
-                       [block-id loaded-app])
+    (hooks/use-effect!
+     (fn []
+       (when (and loaded-app block-id)
+         (state/focus-whiteboard-shape loaded-app block-id))
+       #())
+     [block-id loaded-app])
     (tldraw-app-inner page-uuid block-id loaded-app set-loaded-app)))