From 9fde4e2121c80544de40b9a76976082522fb02cc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9s=20Moya?= Date: Tue, 4 Mar 2025 16:17:15 +0100 Subject: [PATCH] :bug: Unapply token when manually changing layout margin and padding --- common/src/app/common/types/token.cljc | 2 ++ .../app/main/data/workspace/shape_layout.cljs | 28 +++++++++++++------ 2 files changed, 22 insertions(+), 8 deletions(-) diff --git a/common/src/app/common/types/token.cljc b/common/src/app/common/types/token.cljc index decdfe333..bba70ba5a 100644 --- a/common/src/app/common/types/token.cljc +++ b/common/src/app/common/types/token.cljc @@ -188,6 +188,8 @@ (cond (some #{:stroke-color} changed-sub-attr) #{:stroke-color} (some #{:stroke-width} changed-sub-attr) #{:stroke-width}) + (and (= :layout-padding shape-attr) (seq changed-sub-attr)) changed-sub-attr + (and (= :layout-item-margin shape-attr) (seq changed-sub-attr)) changed-sub-attr (border-radius-keys shape-attr) #{shape-attr} (sizing-keys shape-attr) #{shape-attr} (opacity-keys shape-attr) #{shape-attr} diff --git a/frontend/src/app/main/data/workspace/shape_layout.cljs b/frontend/src/app/main/data/workspace/shape_layout.cljs index cafbba89f..ffabffbe8 100644 --- a/frontend/src/app/main/data/workspace/shape_layout.cljs +++ b/frontend/src/app/main/data/workspace/shape_layout.cljs @@ -276,9 +276,15 @@ (ptk/reify ::update-layout ptk/WatchEvent (watch [_ _ _] - (let [undo-id (js/Symbol)] + (let [undo-id (js/Symbol) + padding-attrs (-> (get changes :layout-padding) + keys + set)] (rx/of (dwu/start-undo-transaction undo-id) - (dwsh/update-shapes ids (d/patch-object changes) options) + (dwsh/update-shapes ids (d/patch-object changes) + (cond-> options + (seq padding-attrs) + (assoc :changed-sub-attr padding-attrs))) (ptk/data-event :layout/update {:ids ids}) (dwu/commit-undo-transaction undo-id))))))) @@ -533,14 +539,20 @@ (ptk/reify ::update-layout-child ptk/WatchEvent (watch [_ state _] - (let [page-id (or (get options :page-id) - (get state :current-page-id)) - objects (dsh/lookup-page-objects state page-id) + (let [page-id (or (get options :page-id) + (get state :current-page-id)) + objects (dsh/lookup-page-objects state page-id) children-ids (->> ids (mapcat #(cfh/get-children-ids objects %))) - parent-ids (->> ids (map #(cfh/get-parent-id objects %))) - undo-id (js/Symbol)] + parent-ids (->> ids (map #(cfh/get-parent-id objects %))) + undo-id (js/Symbol) + margin-attrs (-> (get changes :layout-item-margin) + keys + set)] (rx/of (dwu/start-undo-transaction undo-id) - (dwsh/update-shapes ids (d/patch-object changes) options) + (dwsh/update-shapes ids (d/patch-object changes) + (cond-> options + (seq margin-attrs) + (assoc :changed-sub-attr margin-attrs))) (dwsh/update-shapes children-ids (partial fix-child-sizing objects changes) options) (dwsh/update-shapes parent-ids