Verschachtelte Delete-Dialoge korrekt zuordnen
This commit is contained in:
1 parent
38886e39bd
commit
ff0fffccad
1 file changed
+10
-6
@@ -5,6 +5,9 @@
|
|||||||
|
|
||||||
const getCard = (element) => element.closest(cardSelector);
|
const getCard = (element) => element.closest(cardSelector);
|
||||||
|
|
||||||
|
const getDirectDeleteElement = (card, selector) => Array.from(card?.children || [])
|
||||||
|
.find((child) => child.matches(selector)) || null;
|
||||||
|
|
||||||
const setEditMode = (card, enabled) => {
|
const setEditMode = (card, enabled) => {
|
||||||
if (!card) {
|
if (!card) {
|
||||||
return;
|
return;
|
||||||
@@ -29,9 +32,9 @@
|
|||||||
|
|
||||||
const resetDeleteConfirmation = (card) => {
|
const resetDeleteConfirmation = (card) => {
|
||||||
const stage = card?.closest('.sg-delete-confirmation-pattern__stage');
|
const stage = card?.closest('.sg-delete-confirmation-pattern__stage');
|
||||||
const confirmation = card?.querySelector('[data-shared-editable-card-delete-confirmation]');
|
const confirmation = getDirectDeleteElement(card, '[data-shared-editable-card-delete-confirmation]');
|
||||||
const input = card?.querySelector('[data-shared-editable-card-delete-input]');
|
const input = confirmation?.querySelector('[data-shared-editable-card-delete-input]');
|
||||||
const submit = card?.querySelector('[data-shared-editable-card-delete-submit]');
|
const submit = confirmation?.querySelector('[data-shared-editable-card-delete-submit]');
|
||||||
|
|
||||||
if (input) {
|
if (input) {
|
||||||
input.value = '';
|
input.value = '';
|
||||||
@@ -51,8 +54,8 @@
|
|||||||
|
|
||||||
const openDeleteConfirmation = (card) => {
|
const openDeleteConfirmation = (card) => {
|
||||||
const stage = card?.closest('.sg-delete-confirmation-pattern__stage');
|
const stage = card?.closest('.sg-delete-confirmation-pattern__stage');
|
||||||
const confirmation = card?.querySelector('[data-shared-editable-card-delete-confirmation]');
|
const confirmation = getDirectDeleteElement(card, '[data-shared-editable-card-delete-confirmation]');
|
||||||
const input = card?.querySelector('[data-shared-editable-card-delete-input]');
|
const input = confirmation?.querySelector('[data-shared-editable-card-delete-input]');
|
||||||
|
|
||||||
if (input) {
|
if (input) {
|
||||||
input.value = '';
|
input.value = '';
|
||||||
@@ -68,7 +71,8 @@
|
|||||||
|
|
||||||
const updateDeleteButton = (input) => {
|
const updateDeleteButton = (input) => {
|
||||||
const card = getCard(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 token = card?.dataset.sharedEditableDeleteToken || 'DELETE';
|
||||||
const valid = input.value === token;
|
const valid = input.value === token;
|
||||||
|
|
||||||
|
|||||||
Reference in new issue
Block a user