Memoize static options in grow-options* component

Wrap the three radio-button option maps in mf/with-memo [] so the
vector and its (tr ...) calls are evaluated once per mount instead
of on every render.

Signed-off-by: Andrey Antukh <niwi@niwi.nz>
This commit is contained in:
Andrey Antukh 2026-04-21 21:16:08 +00:00 committed by Belén Albeza
parent dfd992aa49
commit b8aa243c2b

View File

@ -142,6 +142,20 @@
[{:keys [ids values on-blur]}] [{:keys [ids values on-blur]}]
(let [grow-type (:grow-type values) (let [grow-type (:grow-type values)
editor-instance (mf/deref refs/workspace-editor) editor-instance (mf/deref refs/workspace-editor)
options
(mf/with-memo []
[{:value "fixed"
:id "text-fixed-grow"
:label (tr "workspace.options.text-options.grow-fixed")
:icon i/text-fixed}
{:value "auto-width"
:id "text-auto-width-grow"
:label (tr "workspace.options.text-options.grow-auto-width")
:icon i/text-auto-width}
{:value "auto-height"
:id "text-auto-height-grow"
:label (tr "workspace.options.text-options.grow-auto-height")
:icon i/text-auto-height}])
handle-change handle-change
(mf/use-fn (mf/use-fn
@ -170,18 +184,7 @@
[:> radio-buttons* {:selected (d/name grow-type) [:> radio-buttons* {:selected (d/name grow-type)
:on-change handle-change :on-change handle-change
:name "grow-text-options" :name "grow-text-options"
:options [{:value "fixed" :options options}]]))
:id "text-fixed-grow"
:label (tr "workspace.options.text-options.grow-fixed")
:icon i/text-fixed}
{:value "auto-width"
:id "text-auto-width-grow"
:label (tr "workspace.options.text-options.grow-auto-width")
:icon i/text-auto-width}
{:value "auto-height"
:id "text-auto-height-grow"
:label (tr "workspace.options.text-options.grow-auto-height")
:icon i/text-auto-height}]}]]))
(mf/defc text-decoration-options* (mf/defc text-decoration-options*
[{:keys [values on-change on-blur token-applied]}] [{:keys [values on-change on-blur token-applied]}]