From 0fef5b7e5d1868a935db58755c78dfcf6ce6b3e5 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Thu, 5 Feb 2026 15:00:06 +0100 Subject: [PATCH] :zap: Memoize variant props on layer-item --- .../main/ui/workspace/sidebar/layer_item.cljs | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/frontend/src/app/main/ui/workspace/sidebar/layer_item.cljs b/frontend/src/app/main/ui/workspace/sidebar/layer_item.cljs index 4eb919f85b..4e1028dc7a 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/layer_item.cljs +++ b/frontend/src/app/main/ui/workspace/sidebar/layer_item.cljs @@ -66,7 +66,7 @@ hidden? (:hidden item) has-shapes? (-> item :shapes seq boolean) touched? (-> item :touched seq boolean) - parent-board? (and (cfh/frame-shape? item) + root-board? (and (cfh/frame-shape? item) (= uuid/zero (:parent-id item))) absolute? (ctl/item-absolute? item) is-variant? (ctk/is-variant? item) @@ -75,9 +75,11 @@ variant-name (when is-variant? (:variant-name item)) variant-error (when is-variant? (:variant-error item)) - data (deref refs/workspace-data) - component (ctkl/get-component data (:component-id item)) - variant-properties (:variant-properties component) + component-id (get item :component-id) + data (mf/deref refs/workspace-data) + variant-properties (-> (ctkl/get-component data component-id) + (get :variant-properties)) + icon-shape (usi/get-shape-icon item)] [:* @@ -101,7 +103,7 @@ :dnd-over dnd-over :dnd-over-top dnd-over-top :dnd-over-bot dnd-over-bot - :root-board parent-board?) + :root-board root-board?) :style style} [:span {:class (stl/css-case :tab-indentation true @@ -161,7 +163,7 @@ :variant-name variant-name :variant-properties variant-properties :variant-error variant-error - :component-id (:id component) + :component-id component-id :is-hidden hidden?}]] (when (not ^boolean is-read-only) [:div {:class (stl/css-case @@ -241,7 +243,7 @@ (cfh/group-shape? item)) is-read-only (mf/use-ctx ctx/workspace-read-only?) - parent-board? (and (cfh/frame-shape? item) + root-board? (and (cfh/frame-shape? item) (= uuid/zero (:parent-id item))) name-node-ref (mf/use-ref) @@ -537,7 +539,7 @@ [:div {:class (stl/css-case :element-children true :parent-selected is-selected - :sticky-children parent-board?) + :sticky-children root-board?) :data-testid (dm/str "children-" id)} (for [item (take children-count shapes)] [:> layer-item*