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:
Andrey Antukh 2026-04-23 16:37:32 +00:00
parent 604edb83eb
commit d66729f17c

View File

@ -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]