From 609ce1c106b0a0da149ad4ab66ac88f8b0a199da Mon Sep 17 00:00:00 2001 From: "alonso.torres" Date: Wed, 27 Apr 2022 14:37:53 +0200 Subject: [PATCH] :bug: Fix poblems with SVG transformations --- frontend/src/app/main/ui/shapes/svg_defs.cljs | 18 ++++++++++-------- .../app/main/ui/workspace/viewport/utils.cljs | 3 +-- 2 files changed, 11 insertions(+), 10 deletions(-) diff --git a/frontend/src/app/main/ui/shapes/svg_defs.cljs b/frontend/src/app/main/ui/shapes/svg_defs.cljs index e0d7bbc181..d127361cb3 100644 --- a/frontend/src/app/main/ui/shapes/svg_defs.cljs +++ b/frontend/src/app/main/ui/shapes/svg_defs.cljs @@ -72,11 +72,13 @@ [:> (name tag) (clj->js attrs) [:> wrapper wrapper-props - (for [node content] [:& svg-node {:type type - :node node - :prefix-id prefix-id - :transform transform - :bounds bounds}])]]))) + (for [[index node] (d/enumerate content)] + [:& svg-node {:key (dm/str "node-" index) + :type type + :node node + :prefix-id prefix-id + :transform transform + :bounds bounds}])]]))) (defn svg-def-bounds [svg-def shape transform] (let [{:keys [tag]} svg-def] @@ -107,10 +109,10 @@ (cond->> id (contains? svg-defs id) (str render-id "-")))] - ;; TODO: no key? (when (seq svg-defs) - (for [svg-def (vals svg-defs)] - [:& svg-node {:type (:type shape) + (for [[key svg-def] svg-defs] + [:& svg-node {:key (dm/str key) + :type (:type shape) :node svg-def :prefix-id prefix-id :transform transform diff --git a/frontend/src/app/main/ui/workspace/viewport/utils.cljs b/frontend/src/app/main/ui/workspace/viewport/utils.cljs index 0c37143be9..2abbbb41dc 100644 --- a/frontend/src/app/main/ui/workspace/viewport/utils.cljs +++ b/frontend/src/app/main/ui/workspace/viewport/utils.cljs @@ -223,8 +223,7 @@ :else (let [old-transform (dom/get-attribute node "data-old-transform")] (if (some? old-transform) - (do (dom/remove-attribute! node "data-old-transform") - (dom/set-attribute! node "transform" old-transform)) + (dom/remove-attribute! node "data-old-transform") (dom/remove-attribute! node "transform"))))))))) (defn format-viewbox [vbox]