diff --git a/frontend/src/app/main/ui/workspace/sidebar/options.cljs b/frontend/src/app/main/ui/workspace/sidebar/options.cljs index e661fb539d..a6d4416ce4 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/options.cljs +++ b/frontend/src/app/main/ui/workspace/sidebar/options.cljs @@ -116,7 +116,7 @@ :shared-libs shared-libs}] (= 0 (count selected)) - [:& page/options] + [:> page/options*] (= 1 (count selected)) [:> shape-options* diff --git a/frontend/src/app/main/ui/workspace/sidebar/options/page.cljs b/frontend/src/app/main/ui/workspace/sidebar/options/page.cljs index 2b6ed69d8a..3619913254 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/options/page.cljs +++ b/frontend/src/app/main/ui/workspace/sidebar/options/page.cljs @@ -24,14 +24,18 @@ (-> (l/key :background) (l/derived refs/workspace-page))) -(mf/defc options - {::mf/wrap [mf/memo] - ::mf/wrap-props false} +(mf/defc options* + {::mf/wrap [mf/memo]} [] (let [background (mf/deref ref:background-color) on-change (mf/use-fn #(st/emit! (dw/change-canvas-color %))) on-open (mf/use-fn #(st/emit! (dwu/start-undo-transaction :options))) - on-close (mf/use-fn #(st/emit! (dwu/commit-undo-transaction :options)))] + on-close (mf/use-fn #(st/emit! (dwu/commit-undo-transaction :options))) + + color (mf/with-memo [background] + {:color (d/nilv background clr/canvas) + :opacity 1})] + [:div {:class (stl/css :element-set)} [:div {:class (stl/css :element-title)} [:& title-bar {:collapsable false @@ -39,14 +43,12 @@ :class (stl/css :title-spacing-page)}]] [:div {:class (stl/css :element-content)} - ;; FIXME: memoize color [:> color-row* {:disable-gradient true :disable-opacity true :disable-image true :title (tr "workspace.options.canvas-background") - :color {:color (d/nilv background clr/canvas) - :opacity 1} + :color color :on-change on-change :on-open on-open :on-close on-close}]]]))