♻️ Migrate color-item asset component to modern syntax (#9440)

Signed-off-by: Andrey Antukh <niwi@niwi.nz>
Co-authored-by: Andrey Antukh <niwi@niwi.nz>
This commit is contained in:
Dexterity 2026-06-02 12:11:33 -04:00 committed by GitHub
parent feca7cef41
commit cb5f59533d
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -34,9 +34,8 @@
[okulary.core :as l]
[rumext.v2 :as mf]))
(mf/defc color-item
{::mf/wrap-props false}
[{:keys [color local? file-id selected multi-colors? multi-assets?
(mf/defc color-item*
[{:keys [color is-local file-id selected is-multi-colors is-multi-assets
on-asset-click on-assets-delete on-clear-selection on-group
selected-full selected-paths move-color]}]
@ -89,9 +88,9 @@
delete-color
(mf/use-fn
(mf/deps multi-colors? multi-assets? file-id color-id)
(mf/deps is-multi-colors is-multi-assets file-id color-id)
(fn []
(if (or multi-colors? multi-assets?)
(if (or is-multi-colors is-multi-assets)
(on-assets-delete)
(let [undo-id (js/Symbol)]
(st/emit! (dwu/start-undo-transaction undo-id)
@ -107,9 +106,9 @@
rename-color-clicked
(mf/use-fn
(mf/deps read-only? local?)
(mf/deps read-only? is-local)
(fn [event]
(when (and local? (not read-only?))
(when (and is-local (not read-only?))
(dom/prevent-default event)
(reset! editing* true))))
@ -150,7 +149,7 @@
(fn [event]
(dom/prevent-default event)
(let [pos (dom/get-client-position event)]
(when (and local? (not read-only?))
(when (and is-local (not read-only?))
(when-not (contains? selected color-id)
(on-clear-selection))
(swap! menu-state cmm/open-context-menu pos)))))
@ -195,7 +194,7 @@
(st/emit! (ev/event
{::ev/name "use-library-color"
::ev/origin "sidebar"
:external-library (not local?)}))
:external-library (not is-local)}))
(when-not (on-asset-click event (:id color))
(st/emit! (dc/apply-color-from-assets file-id color (kbd/alt? event)))))))]
@ -247,26 +246,26 @@
(:name color)
[:span {:class (stl/css :default-name :default-name-with-color)} display-name]])])
(when local?
(when is-local
[:> cmm/assets-context-menu*
{:on-close on-close-menu
:state @menu-state
:options [(when-not (or multi-colors? multi-assets?)
:options [(when-not (or is-multi-colors is-multi-assets)
{:name (tr "workspace.assets.rename")
:id "assets-rename-color"
:handler rename-color-clicked})
(when-not (or multi-colors? multi-assets?)
(when-not (or is-multi-colors is-multi-assets)
{:name (tr "workspace.assets.edit")
:id "assets-edit-color"
:handler edit-color-clicked})
(when-not (or multi-colors? multi-assets?)
(when-not (or is-multi-colors is-multi-assets)
{:name (tr "workspace.assets.duplicate")
:id "assets-duplicate-color"
:handler duplicate-color})
{:name (tr "workspace.assets.delete")
:id "assets-delete-color"
:handler delete-color}
(when-not multi-assets?
(when-not is-multi-assets
{:name (tr "workspace.assets.group")
:id "assets-group-color"
:handler (on-group (:id color))})]}])
@ -342,21 +341,21 @@
[:div {:class (stl/css :drop-space)}])
(for [color colors]
[:& color-item {:key (dm/str (:id color))
:color color
:file-id file-id
:local? local?
:selected selected
:multi-colors? multi-colors?
:multi-assets? multi-assets?
:on-asset-click on-asset-click
:on-assets-delete on-assets-delete
:on-clear-selection on-clear-selection
:on-group on-group
:colors colors
:selected-full selected-full
:selected-paths selected-paths
:move-color move-color}])])
[:> color-item* {:key (dm/str (:id color))
:color color
:file-id file-id
:is-local local?
:selected selected
:is-multi-colors multi-colors?
:is-multi-assets multi-assets?
:on-asset-click on-asset-click
:on-assets-delete on-assets-delete
:on-clear-selection on-clear-selection
:on-group on-group
:colors colors
:selected-full selected-full
:selected-paths selected-paths
:move-color move-color}])])
(for [[path-item content] groups]
(when-not (empty? path-item)