🐛 Fix deleting a variant from assets panel (#7147)

This commit is contained in:
Pablo Alba 2025-08-20 17:38:11 +02:00 committed by GitHub
parent 0daf548773
commit cac639d267
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 16 additions and 3 deletions

View File

@ -311,7 +311,7 @@
{::mf/wrap-props false}
[{:keys [file-id is-local components listing-thumbs? open? force-open?
reverse-sort? selected on-asset-click on-assets-delete
on-clear-selection open-status-ref count-variants]}]
on-clear-selection open-status-ref delete-component count-variants]}]
(let [input-ref (mf/use-ref nil)
@ -393,7 +393,7 @@
(if (or multi-components? multi-assets?)
(on-assets-delete)
(st/emit! (dwu/start-undo-transaction undo-id)
(dwl/delete-component {:id current-component-id})
(delete-component current-component-id)
(dwl/sync-file file-id file-id :components current-component-id)
(dwu/commit-undo-transaction undo-id))))))

View File

@ -10,10 +10,12 @@
[app.common.data :as d]
[app.common.data.macros :as dm]
[app.common.files.variant :as cfv]
[app.common.types.component :as ctc]
[app.common.types.components-list :as ctkl]
[app.main.data.event :as ev]
[app.main.data.workspace :as dw]
[app.main.data.workspace.libraries :as dwl]
[app.main.data.workspace.shapes :as dwsh]
[app.main.data.workspace.undo :as dwu]
[app.main.refs :as refs]
[app.main.router :as rt]
@ -210,13 +212,23 @@
on-typography-click
(mf/use-fn (mf/deps on-asset-click) (partial on-asset-click :typographies))
delete-component
(mf/use-fn
(mf/deps components)
(fn [component-id]
(let [component (some #(when (= (:id %) component-id) %) components)]
(if (ctc/is-variant? component)
;; If the component is a variant, delete its variant container
(dwsh/delete-shapes (:main-instance-page component) #{(:variant-id component)})
(dwl/delete-component {:id component-id})))))
on-assets-delete
(mf/use-fn
(mf/deps selected file-id)
(fn []
(let [undo-id (js/Symbol)]
(st/emit! (dwu/start-undo-transaction undo-id))
(run! st/emit! (map #(dwl/delete-component {:id %})
(run! st/emit! (map delete-component
(:components selected)))
(run! st/emit! (map #(dwl/delete-media {:id %})
(:graphics selected)))
@ -251,6 +263,7 @@
:on-asset-click on-component-click
:on-assets-delete on-assets-delete
:on-clear-selection on-clear-selection
:delete-component delete-component
:count-variants count-variants}])
(when ^boolean show-colors?