From 0efbebd94fafa21ebe80cbcb6bab6c725f16b9ed Mon Sep 17 00:00:00 2001 From: Eva Marco Date: Wed, 12 Mar 2025 14:18:59 +0100 Subject: [PATCH] :tada: Avoid setting token to group shapes (#6055) * :tada: Avoid setting token to group shapes * :paperclip: Fix on update shape when double click --- common/src/app/common/files/migrations.cljc | 18 +++++++++++++++++- .../app/main/ui/workspace/tokens/changes.cljs | 7 +++++++ .../main/ui/workspace/tokens/context_menu.cljs | 6 ++++-- 3 files changed, 28 insertions(+), 3 deletions(-) diff --git a/common/src/app/common/files/migrations.cljc b/common/src/app/common/files/migrations.cljc index e71a072c4..b4f908e56 100644 --- a/common/src/app/common/files/migrations.cljc +++ b/common/src/app/common/files/migrations.cljc @@ -1251,6 +1251,21 @@ (update data :tokens-lib update-tokens-lib) data))) +(defmethod migrate-data "Remove tokens from groups" + [data _] + (letfn [(update-object [object] + (cond-> object + (and (= :group (:type object)) + (contains? (:applied-tokens object) :fill)) + (assoc :fills []) + (and (= :group (:type object)) + (contains? object :applied-tokens)) + (dissoc :applied-tokens))) + + (update-page [page] + (d/update-when page :objects update-vals update-object))] + (update data :pages-index update-vals update-page))) + (def available-migrations (into (d/ordered-set) ["legacy-2" @@ -1306,4 +1321,5 @@ "legacy-66" "legacy-67" "Ensure hidden theme" - "Add token theme id"])) + "Add token theme id" + "Remove tokens from groups"])) diff --git a/frontend/src/app/main/ui/workspace/tokens/changes.cljs b/frontend/src/app/main/ui/workspace/tokens/changes.cljs index 2d4a949e5..1137b28e4 100644 --- a/frontend/src/app/main/ui/workspace/tokens/changes.cljs +++ b/frontend/src/app/main/ui/workspace/tokens/changes.cljs @@ -49,6 +49,13 @@ (rx/mapcat (fn [resolved-tokens] (let [undo-id (js/Symbol) + objects (dsh/lookup-page-objects state) + + shape-ids (or (->> (select-keys objects shape-ids) + (filter (fn [[_ shape]] (not= (:type shape) :group))) + (keys)) + []) + resolved-value (get-in resolved-tokens [(wtt/token-identifier token) :resolved-value]) tokenized-attributes (wtt/attributes-map attributes token)] (rx/of diff --git a/frontend/src/app/main/ui/workspace/tokens/context_menu.cljs b/frontend/src/app/main/ui/workspace/tokens/context_menu.cljs index 514b8246d..8c756a4bd 100644 --- a/frontend/src/app/main/ui/workspace/tokens/context_menu.cljs +++ b/frontend/src/app/main/ui/workspace/tokens/context_menu.cljs @@ -371,8 +371,10 @@ (mf/defc menu-tree [{:keys [selected-shapes submenu-offset type errors] :as context-data}] - (let [entries (if (and (not (some? errors)) - (seq selected-shapes)) + (let [shape-types (into #{} (map :type selected-shapes)) + entries (if (and (not (some? errors)) + (seq selected-shapes) + (not= shape-types #{:group})) (if (some? type) (submenu-actions-selection-actions context-data) (selection-actions context-data))