Browse Source

fix: application Crash when trying to populate node property

fixed https://github.com/logseq/db-test/issues/402
Tienson Qin 2 months ago
parent
commit
c9e446fd86

+ 16 - 16
src/main/frontend/components/property/value.cljs

@@ -746,22 +746,22 @@
                                     node)
                              id (:db/id node)
                              [header label] (if (integer? id)
-                                              (let [node-title (if (seq (:logseq.property/classes property))
-                                                                 (db-content/recur-replace-uuid-in-block-title node)
-                                                                 (block-handler/block-unique-title node))
-                                                    title (subs node-title 0 256)
-                                                    node (or (db/entity id) node)
-                                                    icon (get-node-icon node)
-                                                    header (when-not (db/page? node)
-                                                             (when-let [breadcrumb (state/get-component :block/breadcrumb)]
-                                                               [:div.text-xs.opacity-70
-                                                                (breadcrumb {:search? true} (state/get-current-repo) (:block/uuid node) {})]))
-                                                    label [:div.flex.flex-row.items-center.gap-1
-                                                           (when-not (or (:logseq.property/classes property)
-                                                                         (contains? #{:class :property} (:logseq.property/type property)))
-                                                             (ui/icon icon {:size 14}))
-                                                           [:div title]]]
-                                                [header label])
+                                              (when-let [node-title (if (seq (:logseq.property/classes property))
+                                                                      (db-content/recur-replace-uuid-in-block-title node)
+                                                                      (block-handler/block-unique-title node))]
+                                                (let [title (subs node-title 0 256)
+                                                      node (or (db/entity id) node)
+                                                      icon (get-node-icon node)
+                                                      header (when-not (db/page? node)
+                                                               (when-let [breadcrumb (state/get-component :block/breadcrumb)]
+                                                                 [:div.text-xs.opacity-70
+                                                                  (breadcrumb {:search? true} (state/get-current-repo) (:block/uuid node) {})]))
+                                                      label [:div.flex.flex-row.items-center.gap-1
+                                                             (when-not (or (:logseq.property/classes property)
+                                                                           (contains? #{:class :property} (:logseq.property/type property)))
+                                                               (ui/icon icon {:size 14}))
+                                                             [:div title]]]
+                                                  [header label]))
                                               [nil (:block/title node)])]
                          (assoc node
                                 :header header

+ 4 - 3
src/main/frontend/worker/db/validate.cljs

@@ -44,8 +44,9 @@
                                                 (into {}))]
                              [[:db/add (:db/id entity) :logseq.property.table/sized-columns new-value]])
 
-                           (:block.temp/fully-loaded? entity)
-                           [[:db/retract (:db/id entity) :block.temp/fully-loaded?]]
+                           (some (fn [k] (= "block.temp" (namespace k))) (keys entity))
+                           (let [ks (filter (fn [k] (= "block.temp" (namespace k))) (keys entity))]
+                             (mapv (fn [k] [:db/retract (:db/id entity) k]) ks))
                            (and (:block/page entity) (not (:block/parent entity)))
                            [[:db/add (:db/id entity) :block/parent (:db/id (:block/page entity))]]
                            (and (not (:block/page entity)) (not (:block/parent entity)) (not (:block/name entity)))
@@ -82,7 +83,7 @@
                                                 [[:db/retract (:e d) (:a d) (:v d)]]))))))
         tx-data (concat fix-tx-data class-as-properties)]
     (when (seq tx-data)
-      (ldb/transact! conn tx-data {:fix-db? true}))))
+      (d/transact! conn tx-data {:fix-db? true}))))
 
 (defn validate-db
   [conn]