iziToast — это легкая и гибкая библиотека для создания уведомлений в браузере на JavaScript. Одной из её ключевых возможностей является реализация системы подтверждений действий пользователя: от простого подтверждения удаления элемента до сложных модальных диалогов с выбором нескольких опций.
Для базового подтверждения используется метод
iziToast.show() с кастомной конфигурацией кнопок.
Пример:
iziToast.show({
title: 'Подтвердите действие',
message: 'Вы уверены, что хотите удалить этот элемент?',
timeout: false,
close: false,
overlay: true,
displayMode: 2,
position: 'center',
buttons: [
['', function (instance, toast) {
console.log('Действие подтверждено');
instance.hide({ transitionOut: 'fadeOut' }, toast);
}, true],
['', function (instance, toast) {
console.log('Действие отменено');
instance.hide({ transitionOut: 'fadeOut' }, toast);
}]
]
});
Ключевые моменты:
timeout: false — уведомление не исчезает автоматически,
требуется действие пользователя.overlay: true — затемнение фона, создаёт эффект
модального окна.displayMode: 2 — обеспечивает правильное перекрытие
уведомлений, блокируя взаимодействие с остальной страницей.buttons — массив массивов, каждый из которых задаёт
HTML кнопки, функцию обработки клика и булево значение для выделения
кнопки по умолчанию.iziToast позволяет тонко настраивать визуальный стиль уведомления:
backgroundColor и color — цвета фона и
текста.titleColor и messageColor — цвета
заголовка и сообщения.icon — добавление иконки для визуального акцента
(например, предупреждения или ошибки).zindex — контроль уровня наложения для модальных окон
на страницах с множеством элементов.Пример кастомного стиля для окна подтверждения:
iziToast.show({
title: 'Внимание',
message: 'Данное действие нельзя отменить!',
theme: 'dark',
icon: 'icon-warning',
timeout: false,
overlay: true,
buttons: [
['', function(instance, toast){
instance.hide({}, toast);
}],
['', function(instance, toast){
instance.hide({}, toast);
}]
]
});
Для сложных сценариев, когда необходимо выполнить несколько шагов после подтверждения, iziToast поддерживает цепочку уведомлений. В обработчике кнопки можно вызвать новое уведомление:
['', function(instance, toast){
instance.hide({}, toast);
iziToast.show({
title: 'Подтверждено',
message: 'Элемент удалён успешно',
color: 'green',
timeout: 3000
});
}]
Хотя iziToast не предоставляет нативной поддержки промисов, можно обернуть вызов уведомления в промис для упрощения асинхронной логики:
function confirmAction(message) {
return new Promise((resolve, reject) => {
iziToast.show({
title: 'Подтверждение',
message: message,
timeout: false,
overlay: true,
buttons: [
['', function(instance, toast){
instance.hide({}, toast);
resolve(true);
}],
['', function(instance, toast){
instance.hide({}, toast);
resolve(false);
}]
]
});
});
}
// Пример использования
confirmAction('Удалить запись?').then((confirmed) => {
if (confirmed) {
console.log('Запись удалена');
} else {
console.log('Удаление отменено');
}
});
Кнопки можно не только стилизовать, но и добавлять дополнительные события, например, изменение текста в процессе обработки:
['', function(instance, toast){
this.innerHTML = 'Обработка...';
setTimeout(() => {
instance.hide({}, toast);
}, 1500);
}]
Такой подход позволяет создавать более отзывчивый интерфейс с динамической реакцией на действия пользователя.
Для разных контекстов системы подтверждений можно применять разные визуальные стили:
color: 'red' — критические действия (удаление, сброс
настроек).color: 'orange' — предупреждения, потенциально опасные
операции.color: 'green' — успешное выполнение или подтверждение
действий.iziToast поддерживает единообразное управление стилями и поведением уведомлений, что делает библиотеку идеальной для построения интерактивной системы подтверждений действий.