diff --git a/src/components/block-tunes/block-tune-delete.ts b/src/components/block-tunes/block-tune-delete.ts index 3e10c3db..972a715c 100644 --- a/src/components/block-tunes/block-tune-delete.ts +++ b/src/components/block-tunes/block-tune-delete.ts @@ -51,9 +51,7 @@ export default class DeleteTune implements BlockTune { label: this.api.i18n.t('Delete'), name: 'delete', confirmation: { - icon: $.svg('cross', 14, 14).outerHTML, - label: 'Click to delete', - name: 'delete', + label: this.api.i18n.t('Click to delete'), onActivate: (item, e): void => this.handleClick(e), }, }; diff --git a/src/components/i18n/locales/en/messages.json b/src/components/i18n/locales/en/messages.json index 34cc3477..32761be6 100644 --- a/src/components/i18n/locales/en/messages.json +++ b/src/components/i18n/locales/en/messages.json @@ -37,7 +37,8 @@ }, "blockTunes": { "delete": { - "Delete": "" + "Delete": "", + "Click to delete": "" }, "moveUp": { "Move up": "" diff --git a/src/components/utils/popover.ts b/src/components/utils/popover.ts index 7c8e705c..3cdd03dc 100644 --- a/src/components/utils/popover.ts +++ b/src/components/utils/popover.ts @@ -50,7 +50,7 @@ interface PopoverItemWithConfirmation extends PopoverItemBase { * Item parameters that should be applied on item activation. * May be used to ask user for confirmation before executing popover item activation handler. */ - confirmation: PopoverItem; + confirmation: Partial; onActivate?: never; } @@ -505,8 +505,19 @@ export default class Popover extends EventsDispatcher { if (this.itemRequiringConfirmation === null) { this.itemRequiringConfirmation = clickedItem; } - this.items[itemIndex] = clickedItem.confirmation; - const confirmationStateItemEl = this.createItem(clickedItem.confirmation as PopoverItem); + const newItemData = { + ...clickedItem, + ...clickedItem.confirmation, + } as PopoverItem; + + /** Prevent confirmation loop */ + if (newItemData.confirmation === clickedItem.confirmation) { + delete newItemData.confirmation; + } + + this.items[itemIndex] = newItemData; + + const confirmationStateItemEl = this.createItem(newItemData as PopoverItem); confirmationStateItemEl.classList.add(Popover.CSS.itemConfirmation); itemEl.parentElement.replaceChild(confirmationStateItemEl, itemEl);