Quellcode durchsuchen

fix: ref not shows when starting the app

Tienson Qin vor 2 Jahren
Ursprung
Commit
c9f52e8a9b
2 geänderte Dateien mit 30 neuen und 16 gelöschten Zeilen
  1. 19 5
      deps/db/src/logseq/db/sqlite/common_db.cljs
  2. 11 11
      src/main/frontend/components/block.cljs

+ 19 - 5
deps/db/src/logseq/db/sqlite/common_db.cljs

@@ -28,21 +28,35 @@
                :file/path (:v e)
                :file/content (:file/content (d/entity db (:e e)))}))))
 
+(defn- get-block-with-refs
+  [db block]
+  (update block :block/refs (fn [refs]
+                               (map (fn [ref]
+                                      (let [e (d/entity db (:db/id ref))]
+                                        (if (and e (:block/name e))
+                                          (assoc ref
+                                                 :block/uuid (:block/uuid e)
+                                                 :block/original-name (:block/name e)
+                                                 :block/name (:block/name e))
+                                          ref))) refs))))
+
 (defn get-block-and-children
   [db name children?]
   (let [get-children (fn [col]
                        (map (fn [e]
-                              (select-keys e [:db/id :block/uuid :block/page :block/left :block/parent]))
+                              (select-keys e [:db/id :block/uuid :block/page :block/left :block/parent :block/collapsed?]))
                             col))
         uuid? (common-util/uuid-string? name)
         block (when uuid?
                 (let [id (uuid name)]
                   (d/entity db [:block/uuid id])))]
     (if (and block (not (:block/name block))) ; not a page
-      (cond->
-       {:block (d/pull db '[*] (:db/id block))}
-        children?
-        (assoc :children (get-children (:block/_parent block))))
+      (let [block' (d/pull db '[*] (:db/id block))
+            block-with-refs (get-block-with-refs db block')]
+        (cond->
+         {:block block-with-refs}
+          children?
+          (assoc :children (get-children (:block/_parent block)))))
       (when-let [block (or block (d/entity db [:block/name name]))]
         (cond->
          {:block (d/pull db '[*] (:db/id block))}

+ 11 - 11
src/main/frontend/components/block.cljs

@@ -3139,18 +3139,18 @@
   (let [repo (state/get-current-repo)
         *navigating-block (get state ::navigating-block)
         navigating-block (rum/react *navigating-block)
-        navigated? (and (not= (:block/uuid block) navigating-block) navigating-block)]
+        navigated? (and (not= (:block/uuid block) navigating-block) navigating-block)
+        _ (state/sub-async-query-loading (:block/uuid block))]
     (when (:block/uuid block)
-      (when-not (state/sub-async-query-loading (:block/uuid block))
-        (let [[original-block block] (build-block config block {:navigating-block navigating-block :navigated? navigated?})
-              config' (if original-block
-                        (assoc config :original-block original-block)
-                        config)
-              opts {}]
-          (rum/with-key
-            (block-container-inner state repo config' block
-                                   (merge opts {:navigating-block navigating-block :navigated? navigated?}))
-            (str "block-inner" (:block/uuid block))))))))
+      (let [[original-block block] (build-block config block {:navigating-block navigating-block :navigated? navigated?})
+            config' (if original-block
+                      (assoc config :original-block original-block)
+                      config)
+            opts {}]
+        (rum/with-key
+          (block-container-inner state repo config' block
+                                 (merge opts {:navigating-block navigating-block :navigated? navigated?}))
+          (str "block-inner" (:block/uuid block)))))))
 
 (defn divide-lists
   [[f & l]]