From 9b9f2c39b96d0425b5645bb229c9917c83596346 Mon Sep 17 00:00:00 2001 From: Pablo Alba Date: Fri, 14 Jul 2023 08:47:34 +0200 Subject: [PATCH] :bug: Fix duplicate a component copy missing shape-ref --- .../app/main/data/workspace/selection.cljs | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/frontend/src/app/main/data/workspace/selection.cljs b/frontend/src/app/main/data/workspace/selection.cljs index 9bab204bf..efffe2365 100644 --- a/frontend/src/app/main/data/workspace/selection.cljs +++ b/frontend/src/app/main/data/workspace/selection.cljs @@ -397,9 +397,9 @@ (defn- prepare-duplicate-shape-change ([changes objects page unames update-unames! ids-map obj delta libraries library-data it file-id] - (prepare-duplicate-shape-change changes objects page unames update-unames! ids-map obj delta libraries library-data it file-id (:frame-id obj) (:parent-id obj))) + (prepare-duplicate-shape-change changes objects page unames update-unames! ids-map obj delta libraries library-data it file-id (:frame-id obj) (:parent-id obj) false)) - ([changes objects page unames update-unames! ids-map obj delta libraries library-data it file-id frame-id parent-id] + ([changes objects page unames update-unames! ids-map obj delta libraries library-data it file-id frame-id parent-id duplicating-component?] (cond (nil? obj) changes @@ -413,8 +413,9 @@ parent-id (or parent-id frame-id) name (:name obj) - is-component-root? (:saved-component-root? obj) - is-component-main? (:main-instance? obj) + is-component-root? (or (:saved-component-root? obj) (ctk/instance-root? obj)) + duplicating-component? (or duplicating-component? is-component-root?) + is-component-main? (ctk/main-instance? obj) regenerate-component (fn [changes shape] (let [components-v2 (dm/get-in library-data [:options :components-v2]) @@ -428,12 +429,15 @@ :frame-id frame-id) (dissoc :shapes :main-instance? - :shape-ref :use-for-thumbnail?) (gsh/move delta) (d/update-when :interactions #(ctsi/remap-interactions % ids-map objects))) - changes (-> (pcb/add-object changes new-obj) + new-obj (cond-> new-obj + (not duplicating-component?) + (dissoc :shape-ref)) + + changes (-> (pcb/add-object changes new-obj {:ignore-touched duplicating-component?}) (pcb/amend-last-change #(assoc % :old-id (:id obj)))) changes (cond-> changes @@ -454,7 +458,8 @@ it file-id (if frame? new-id frame-id) - new-id)) + new-id + duplicating-component?)) changes (map (d/getf objects) (:shapes obj)))))))