5454 <i class =" icon-[lucide--pencil]" />
5555 </template >
5656 </IconTextButton >
57- <IconTextButton :label =" $t('g.delete')" type =" secondary" size =" md" >
57+ <IconTextButton
58+ :label =" $t('g.delete')"
59+ type =" secondary"
60+ size =" md"
61+ @click =" confirmDeletion"
62+ >
5863 <template #icon >
5964 <i class =" icon-[lucide--trash-2]" />
6065 </template >
@@ -120,9 +125,11 @@ import IconGroup from '@/components/button/IconGroup.vue'
120125import IconTextButton from ' @/components/button/IconTextButton.vue'
121126import MoreButton from ' @/components/button/MoreButton.vue'
122127import EditableText from ' @/components/common/EditableText.vue'
128+ import { showConfirmDialog } from ' @/components/dialog/confirm/confirmDialog'
123129import AssetBadgeGroup from ' @/platform/assets/components/AssetBadgeGroup.vue'
124130import type { AssetDisplayItem } from ' @/platform/assets/composables/useAssetBrowser'
125131import { useSettingStore } from ' @/platform/settings/settingStore'
132+ import { useDialogStore } from ' @/stores/dialogStore'
126133import { cn } from ' @/utils/tailwindUtil'
127134
128135const { asset, interactive } = defineProps <{
@@ -135,6 +142,7 @@ defineEmits<{
135142}>()
136143
137144const settingStore = useSettingStore ()
145+ const { closeDialog } = useDialogStore ()
138146
139147const dropdownMenuButton = useTemplateRef <InstanceType <typeof MoreButton >>(
140148 ' dropdown-menu-button'
@@ -155,6 +163,32 @@ const { isLoading, error } = useImage({
155163 alt: asset .name
156164})
157165
166+ async function confirmDeletion() {
167+ dropdownMenuButton .value ?.hide ()
168+ const confirmDialog = showConfirmDialog ({
169+ headerProps: {
170+ title: ' Delete this model?'
171+ },
172+ props: {
173+ confirmationText:
174+ ' This model will be permanently removed from your library.'
175+ },
176+ footerProps: {
177+ confirmText: ' Delete' ,
178+ // TODO: These need to be put into the new Button Variants once we have them.
179+ confirmClass: cn (
180+ ' bg-danger-200 text-base-foreground hover:bg-danger-200/80 focus:bg-danger-200/80 focus:ring ring-base-foreground'
181+ ),
182+ onCancel : () => {
183+ closeDialog (confirmDialog )
184+ },
185+ onConfirm : () => {
186+ closeDialog (confirmDialog )
187+ }
188+ }
189+ })
190+ }
191+
158192function startAssetRename() {
159193 dropdownMenuButton .value ?.hide ()
160194 isEditing .value = true
0 commit comments