From 36b5778bf2c1aff32eb82f7c93fcd7dae04ac1a1 Mon Sep 17 00:00:00 2001 From: Tienson Qin Date: Mon, 17 Mar 2025 23:31:16 +0800 Subject: [PATCH] don't include block property values for all pages --- deps/db/src/logseq/db/common/sqlite.cljs | 22 ++++++++------ src/main/frontend/components/block.cljs | 2 +- src/main/frontend/components/views.cljs | 37 ++++++++++++------------ 3 files changed, 32 insertions(+), 29 deletions(-) diff --git a/deps/db/src/logseq/db/common/sqlite.cljs b/deps/db/src/logseq/db/common/sqlite.cljs index 6533d915aa..ad24d6d745 100644 --- a/deps/db/src/logseq/db/common/sqlite.cljs +++ b/deps/db/src/logseq/db/common/sqlite.cljs @@ -83,11 +83,13 @@ (dissoc property :db/index :db/valueType :db/cardinality))) (defn- property-with-values - [db block] + [db block properties] (when (entity-plus/db-based-graph? db) - (let [block (d/entity db (:db/id block))] - (->> (:block/properties block) - vals + (let [block (d/entity db (:db/id block)) + property-vals (if properties + (map block properties) + (vals (:block/properties block)))] + (->> property-vals (mapcat (fn [property-values] (let [values (->> @@ -104,7 +106,7 @@ (map (fn [id] (d/pull db '[*] id)) value-ids)) - ;; FIXME: why d/pull returns {:db/id db-ident} instead of {:db/id number-eid}? + ;; FIXME: why d/pull returns {:db/id db-ident} instead of {:db/id number-eid}? (keep (fn [block] (let [from-property-id (get-in block [:logseq.property/created-from-property :db/id])] (if (keyword? from-property-id) @@ -140,7 +142,8 @@ (d/pull-many db '[*] ids'))))) (defn get-block-and-children - [db id {:keys [children? nested-children? properties]}] + [db id {:keys [children? nested-children? including-property-vals? properties] + :or {including-property-vals? true}}] (let [block (d/entity db (if (uuid? id) [:block/uuid id] id))] @@ -157,8 +160,9 @@ (mark-block-fully-loaded block') block')] (cond-> - {:block block' - :properties (property-with-values db block)} + {:block block'} + including-property-vals? + (assoc :properties (property-with-values db block properties)) children? (assoc :children (let [page? (common-entity-util/page? block) @@ -180,7 +184,7 @@ (let [e (d/entity db (:db/id block))] (conj (if (seq (:block/properties e)) - (vec (property-with-values db e)) + (vec (property-with-values db e nil)) []) block))))))))))))) diff --git a/src/main/frontend/components/block.cljs b/src/main/frontend/components/block.cljs index eaef439349..f8848a482e 100644 --- a/src/main/frontend/components/block.cljs +++ b/src/main/frontend/components/block.cljs @@ -1241,7 +1241,7 @@ (db-async/