From 8b9a7b257f36fc82f32fb18b64d71a0f5b0de16d Mon Sep 17 00:00:00 2001 From: Dexterity <173429049+Dexterity104@users.noreply.github.com> Date: Tue, 2 Jun 2026 12:12:03 -0400 Subject: [PATCH] :recycle: Migrate rulers component to modern syntax (#9437) * :recycle: Migrate rulers component to modern syntax * :paperclip: Remove the usage of mf/memo on rules Signed-off-by: Andrey Antukh --------- Signed-off-by: Andrey Antukh Co-authored-by: Andrey Antukh --- .../src/app/main/ui/workspace/viewport.cljs | 4 +-- .../main/ui/workspace/viewport/rulers.cljs | 26 ++++++------------- .../app/main/ui/workspace/viewport_wasm.cljs | 4 +-- 3 files changed, 12 insertions(+), 22 deletions(-) diff --git a/frontend/src/app/main/ui/workspace/viewport.cljs b/frontend/src/app/main/ui/workspace/viewport.cljs index a52f71385a..e842451c2f 100644 --- a/frontend/src/app/main/ui/workspace/viewport.cljs +++ b/frontend/src/app/main/ui/workspace/viewport.cljs @@ -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* diff --git a/frontend/src/app/main/ui/workspace/viewport/rulers.cljs b/frontend/src/app/main/ui/workspace/viewport/rulers.cljs index 3d8d4556f7..89c71a8afc 100644 --- a/frontend/src/app/main/ui/workspace/viewport/rulers.cljs +++ b/frontend/src/app/main/ui/workspace/viewport/rulers.cljs @@ -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 diff --git a/frontend/src/app/main/ui/workspace/viewport_wasm.cljs b/frontend/src/app/main/ui/workspace/viewport_wasm.cljs index a88802f257..5fa174fe2c 100644 --- a/frontend/src/app/main/ui/workspace/viewport_wasm.cljs +++ b/frontend/src/app/main/ui/workspace/viewport_wasm.cljs @@ -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*