mirror of
https://github.com/penpot/penpot.git
synced 2026-04-25 11:18:36 +00:00
⚡ Extract pure state-update callbacks from versions-toolbox* to namespace level
Eight callbacks that only emit fixed Potok events with no meaningful deps were hoisted out of the component as defn- functions: - on-create-version - on-edit-version - on-cancel-version-edition - on-rename-version - on-delete-version - on-pin-version - on-lock-version - on-unlock-version These no longer need mf/use-fn wrappers since namespace-level functions have stable identity across renders, avoiding unnecessary callback recreation on each render cycle.
This commit is contained in:
parent
604edb83eb
commit
d66729f17c
@ -85,6 +85,38 @@
|
||||
[event]
|
||||
(-> event dom/get-current-target (dom/get-data "id") uuid/parse))
|
||||
|
||||
(defn- on-create-version
|
||||
[]
|
||||
(st/emit! (dwv/create-version)))
|
||||
|
||||
(defn- on-edit-version
|
||||
[id _event]
|
||||
(st/emit! (dwv/update-versions-state {:editing id})))
|
||||
|
||||
(defn- on-cancel-version-edition
|
||||
[_id _event]
|
||||
(st/emit! (dwv/update-versions-state {:editing nil})))
|
||||
|
||||
(defn- on-rename-version
|
||||
[id label]
|
||||
(st/emit! (dwv/rename-version id label)))
|
||||
|
||||
(defn- on-delete-version
|
||||
[id]
|
||||
(st/emit! (dwv/delete-version id)))
|
||||
|
||||
(defn- on-pin-version
|
||||
[id]
|
||||
(st/emit! (dwv/pin-version id)))
|
||||
|
||||
(defn- on-lock-version
|
||||
[id]
|
||||
(st/emit! (dwv/lock-version id)))
|
||||
|
||||
(defn- on-unlock-version
|
||||
[id]
|
||||
(st/emit! (dwv/unlock-version id)))
|
||||
|
||||
(mf/defc version-entry*
|
||||
{::mf/private true}
|
||||
[{:keys [entry current-profile on-preview on-restore on-delete on-rename on-lock on-unlock on-edit on-cancel-edit is-editing]}]
|
||||
@ -310,25 +342,6 @@
|
||||
(= (:filter state) (:profile-id %)))))
|
||||
(group-snapshots)))
|
||||
|
||||
on-create-version
|
||||
(mf/use-fn
|
||||
(fn [] (st/emit! (dwv/create-version))))
|
||||
|
||||
on-edit-version
|
||||
(mf/use-fn
|
||||
(fn [id _event]
|
||||
(st/emit! (dwv/update-versions-state {:editing id}))))
|
||||
|
||||
on-cancel-version-edition
|
||||
(mf/use-fn
|
||||
(fn [_id _event]
|
||||
(st/emit! (dwv/update-versions-state {:editing nil}))))
|
||||
|
||||
on-rename-version
|
||||
(mf/use-fn
|
||||
(fn [id label]
|
||||
(st/emit! (dwv/rename-version id label))))
|
||||
|
||||
on-preview-version
|
||||
(mf/use-fn
|
||||
(fn [id]
|
||||
@ -361,25 +374,6 @@
|
||||
::ev/origin "workspace:sidebar"
|
||||
:type "autosaved-version"}))))
|
||||
|
||||
on-delete-version
|
||||
(mf/use-fn
|
||||
(fn [id]
|
||||
(st/emit! (dwv/delete-version id))))
|
||||
|
||||
on-pin-version
|
||||
(mf/use-fn
|
||||
(fn [id] (st/emit! (dwv/pin-version id))))
|
||||
|
||||
on-lock-version
|
||||
(mf/use-fn
|
||||
(fn [id]
|
||||
(st/emit! (dwv/lock-version id))))
|
||||
|
||||
on-unlock-version
|
||||
(mf/use-fn
|
||||
(fn [id]
|
||||
(st/emit! (dwv/unlock-version id))))
|
||||
|
||||
on-change-filter
|
||||
(mf/use-fn
|
||||
(fn [filter]
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user