♻️ Migrate rulers component to modern syntax (#9437)

* ♻️ Migrate rulers component to modern syntax

* 📎 Remove the usage of mf/memo on rules

Signed-off-by: Andrey Antukh <niwi@niwi.nz>

---------

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:12:03 -04:00 committed by GitHub
parent cb5f59533d
commit 8b9a7b257f
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 12 additions and 22 deletions

View File

@ -641,14 +641,14 @@
{:page-id page-id}])
(when-not hide-ui?
[:& rulers/rulers
[:> rulers/rulers*
{:zoom zoom
:zoom-inverse zoom-inverse
:vbox vbox
:selected-shapes selected-shapes
:offset-x offset-x
:offset-y offset-y
:show-rulers? show-rulers?}])
:show-rulers show-rulers?}])
(when (and show-rulers? show-grids?)
[:> guides/viewport-guides*

View File

@ -12,7 +12,6 @@
[app.common.math :as mth]
[app.main.ui.formats :as fmt]
[app.main.ui.hooks :as hooks]
[app.util.object :as obj]
[rumext.v2 :as mf]))
(def rulers-pos 15)
@ -311,36 +310,27 @@
:fill selection-area-color}}
(fmt/format-number (- (:y1 selection-rect) offset-y))]])])
(mf/defc rulers
{::mf/wrap-props false
::mf/wrap [#(mf/memo' % (mf/check-props ["zoom" "vbox" "selected-shapes" "show-rulers?"]))]}
[props]
(let [zoom (obj/get props "zoom")
zoom-inverse (obj/get props "zoom-inverse")
vbox (obj/get props "vbox")
offset-x (obj/get props "offset-x")
offset-y (obj/get props "offset-y")
selected-shapes (-> (obj/get props "selected-shapes")
(hooks/use-equal-memo))
show-rulers? (obj/get props "show-rulers?")
(mf/defc rulers*
[{:keys [zoom zoom-inverse vbox offset-x offset-y selected-shapes show-rulers]}]
(let [selected-shapes
(hooks/use-equal-memo selected-shapes)
selection-rect
(mf/use-memo
(mf/deps selected-shapes)
#(when (d/not-empty? selected-shapes)
(mf/with-memo [selected-shapes]
(when (d/not-empty? selected-shapes)
(gsh/shapes->rect selected-shapes)))]
(when (some? vbox)
[:g.viewport-frame {:pointer-events "none"}
[:> viewport-frame*
{:show-rulers show-rulers?
{:show-rulers show-rulers
:zoom zoom
:zoom-inverse zoom-inverse
:vbox vbox
:offset-x offset-x
:offset-y offset-y}]
(when (and show-rulers? (some? selection-rect))
(when (and show-rulers (some? selection-rect))
[:> selection-area*
{:zoom zoom
:zoom-inverse zoom-inverse

View File

@ -775,14 +775,14 @@
{:page-id page-id}])
(when-not hide-ui?
[:& rulers/rulers
[:> rulers/rulers*
{:zoom zoom
:zoom-inverse zoom-inverse
:vbox vbox
:selected-shapes selected-shapes
:offset-x offset-x
:offset-y offset-y
:show-rulers? show-rulers?}])
:show-rulers show-rulers?}])
(when (and show-rulers? show-grids?)
[:> guides/viewport-guides*