#sweetalert2
Вопрос:
Я пытаюсь связать несколько диалогов подтверждения с SweetAlert2.
На самом деле все диалоги независимы друг от друга и должны просто открываться один за другим. Для каждого из диалогов подтверждения я хочу иметь возможность обрабатывать отдельное обещание.
В примере я видел, что можно добавить global .then() для обработки обещания Swal.queue(). Но это мне пока не помогает, потому что я добавляю элементы очереди в зависимости от условий.
Кроме того, когда один из Свалов был подтвержден, я больше не хочу, чтобы другие в очереди открывались.
В настоящее время я пытаюсь достичь этого с помощью Swal.queue (), как это:
let modals = [];
let modalStopGame = {
title: "Stop game?",
icon: "warning",
buttons: true,
dangerMode: true,
showCancelButton: true,
cancelButtonText: "Abbrechen",
confirmButtonText: "Stoppen",
preConfirm: willStopGame => {
if (willStopGame) {
stopGame(bookingId);
return true;
}
},
};
modals.push(modalStopGame);
let modalDeleteBooking = {
title: "Delete booking?",
icon: "warning",
buttons: true,
dangerMode: true,
showCancelButton: true,
cancelButtonText: "Abbrechen",
confirmButtonText: "Löschen",
isConfirmed: willDelete => {
if (willDelete) {
deleteBooking(bookingId, "");
return true;
}
},
};
modals.push(modalDeleteBooking);
swal.queue(modals);
Но есть ли более простой способ?
Я хотел бы использовать его, как показано здесь, но тогда открывается только последний объявленный Swal. Те, которые встречались в предыдущем коде, игнорируются…
swal({
title: "Stop game?",
icon: "warning",
buttons: true,
dangerMode: true,
}).then((willStopGame) => {
if (willStopGame) {
stopGame(bookingId);
return true;
}
});
swal({
title: "Löschen der ganzen Serie?",
icon: "question",
buttons: true,
dangerMode: true,
}).then((willDeleteSeries) => {
if (willDeleteSeries) {
deleteBooking(bookingId, seriesId);
return true;
}
});
Большое спасибо,
Шуркан2