From 853b54510c26cf8550ba1ea7ee6b98e1af15d0ee Mon Sep 17 00:00:00 2001 From: Tienson Qin Date: Wed, 6 Sep 2023 22:00:39 +0800 Subject: [PATCH] perf: fast rendering for long pages (no need to wait for seconds) --- src/main/frontend/components/block.cljs | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/src/main/frontend/components/block.cljs b/src/main/frontend/components/block.cljs index dd81766e02..5657f77b55 100644 --- a/src/main/frontend/components/block.cljs +++ b/src/main/frontend/components/block.cljs @@ -3400,16 +3400,21 @@ (str "-" (:block/uuid original-block))))))) (defn- get-hidden-atom - [sub-id *ref] - (rum/derived-atom [(:ui/main-container-scroll-top @state/state)] [::lazy-display sub-id] - (fn [top] - (boolean (hide-block? @*ref))))) + [sub-id *ref {:keys [initial-value]}] + (let [*initial? (atom true)] + (rum/derived-atom [(:ui/main-container-scroll-top @state/state)] [::lazy-display sub-id] + (fn [_top] + (if (and @*initial? (some? initial-value)) + (do + (reset! *initial? false) + initial-value) + (boolean (hide-block? @*ref))))))) (rum/defcs block-item < rum/reactive {:init (fn [state] (let [id (random-uuid) *ref (atom nil) - *hidden? (get-hidden-atom id *ref)] + *hidden? (get-hidden-atom id *ref {:initial-value true})] (assoc state ::sub-id id ::ref *ref ::hidden? *hidden?))) :should-update (fn [old-state new-state] (let [args-1 (:rum/args old-state)