diff --git a/public/scripts/shared-editable-action-card.js b/public/scripts/shared-editable-action-card.js index a69d8fa..78e1f77 100644 --- a/public/scripts/shared-editable-action-card.js +++ b/public/scripts/shared-editable-action-card.js @@ -5,6 +5,9 @@ const getCard = (element) => element.closest(cardSelector); + const getDirectDeleteElement = (card, selector) => Array.from(card?.children || []) + .find((child) => child.matches(selector)) || null; + const setEditMode = (card, enabled) => { if (!card) { return; @@ -29,9 +32,9 @@ const resetDeleteConfirmation = (card) => { const stage = card?.closest('.sg-delete-confirmation-pattern__stage'); - const confirmation = card?.querySelector('[data-shared-editable-card-delete-confirmation]'); - const input = card?.querySelector('[data-shared-editable-card-delete-input]'); - const submit = card?.querySelector('[data-shared-editable-card-delete-submit]'); + const confirmation = getDirectDeleteElement(card, '[data-shared-editable-card-delete-confirmation]'); + const input = confirmation?.querySelector('[data-shared-editable-card-delete-input]'); + const submit = confirmation?.querySelector('[data-shared-editable-card-delete-submit]'); if (input) { input.value = ''; @@ -51,8 +54,8 @@ const openDeleteConfirmation = (card) => { const stage = card?.closest('.sg-delete-confirmation-pattern__stage'); - const confirmation = card?.querySelector('[data-shared-editable-card-delete-confirmation]'); - const input = card?.querySelector('[data-shared-editable-card-delete-input]'); + const confirmation = getDirectDeleteElement(card, '[data-shared-editable-card-delete-confirmation]'); + const input = confirmation?.querySelector('[data-shared-editable-card-delete-input]'); if (input) { input.value = ''; @@ -68,7 +71,8 @@ const updateDeleteButton = (input) => { const card = getCard(input); - const submit = card?.querySelector('[data-shared-editable-card-delete-submit]'); + const confirmation = input?.closest('[data-shared-editable-card-delete-confirmation]'); + const submit = confirmation?.querySelector('[data-shared-editable-card-delete-submit]'); const token = card?.dataset.sharedEditableDeleteToken || 'DELETE'; const valid = input.value === token;