From b46055328e87e941df9cdb90dfd99bd9887e61fe Mon Sep 17 00:00:00 2001 From: Tienson Qin Date: Wed, 10 Nov 2021 14:59:08 +0800 Subject: [PATCH] enhance(perf): edit the page itself should be fast no matter how many refs it has --- src/main/frontend/db/react.cljs | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/src/main/frontend/db/react.cljs b/src/main/frontend/db/react.cljs index 744842f59..586e21514 100644 --- a/src/main/frontend/db/react.cljs +++ b/src/main/frontend/db/react.cljs @@ -56,13 +56,19 @@ (reset! query-state state))) (defn get-current-repo-refs-keys - [] + [{:keys [key data]}] (when-let [current-repo (state/get-current-repo)] (->> (map (fn [[repo k id]] (when (and (= repo current-repo) (contains? #{:block/refed-blocks :block/unlinked-refs} k)) - [k id])) + (if (= k :block/refed-blocks) + (if (every? (fn [m] + (when (map? m) + (= id (:db/id (:block/page m))))) data) + nil + [k id]) + [k id]))) (keys @query-state)) (remove nil?)))) @@ -250,7 +256,6 @@ (when current-page-id [[:page/ref-pages current-page-id] - ;; [:block/refed-blocks current-page-id] [:page/mentioned-pages current-page-id]]) (apply concat @@ -272,7 +277,8 @@ (when (= k :block/refed-blocks) [:page/ref-pages page-id])) related-keys) - all-refed-blocks (get-current-repo-refs-keys) + all-refed-blocks (get-current-repo-refs-keys {:key key + :data data}) custom-queries (some->> (filter (fn [v] (and (= (first v) (state/get-current-repo))