diff --git a/frontend/src/app/main/data/workspace/libraries.cljs b/frontend/src/app/main/data/workspace/libraries.cljs index 1dbfdf2bf..59ab84956 100644 --- a/frontend/src/app/main/data/workspace/libraries.cljs +++ b/frontend/src/app/main/data/workspace/libraries.cljs @@ -318,6 +318,7 @@ uchanges [{:type :add-component :id id :name (:name component) + :path (:path component) :shapes (vals (:objects component))}]] (rx/of (dwc/commit-changes rchanges uchanges {:commit-local? true})))))) diff --git a/frontend/src/app/main/ui/workspace/sidebar/assets.cljs b/frontend/src/app/main/ui/workspace/sidebar/assets.cljs index 5e97dee67..38f86df09 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/assets.cljs +++ b/frontend/src/app/main/ui/workspace/sidebar/assets.cljs @@ -165,13 +165,24 @@ on-duplicate (mf/use-callback (mf/deps state) - (st/emitf (dwl/duplicate-component {:id (:component-id @state)}))) + (fn [] + (if (empty? selected) + (st/emit! (dwl/duplicate-component {:id (:component-id @state)})) + (do + (st/emit! (dwc/start-undo-transaction)) + (apply st/emit! (map #(dwl/duplicate-component {:id %}) selected)) + (st/emit! (dwc/commit-undo-transaction)))))) on-delete (mf/use-callback (mf/deps state) (fn [] - (st/emit! (dwl/delete-component {:id (:component-id @state)})) + (if (empty? selected) + (st/emit! (dwl/delete-component {:id (:component-id @state)})) + (do + (st/emit! (dwc/start-undo-transaction)) + (apply st/emit! (map #(dwl/delete-component {:id %}) selected)) + (st/emit! (dwc/commit-undo-transaction)))) (st/emit! (dwl/sync-file file-id file-id)))) on-rename @@ -362,8 +373,12 @@ (mf/use-callback (mf/deps state) (fn [] - (let [params {:id (:object-id @state)}] - (st/emit! (dwl/delete-media params))))) + (if (empty? selected) + (st/emit! (dwl/delete-media {:id (:object-id @state)})) + (do + (st/emit! (dwc/start-undo-transaction)) + (apply st/emit! (map #(dwl/delete-media {:id %}) selected)) + (st/emit! (dwc/commit-undo-transaction)))))) on-rename (mf/use-callback