Toastify — это легковесная библиотека для создания уведомлений в браузере. Одним из важных аспектов работы с уведомлениями является возможность отслеживания момента их закрытия. Это позволяет выполнять последующие действия, такие как очистка состояния интерфейса, запуск функций или логирование.
Toastify предоставляет два основных способа обработки закрытия уведомления:
Автоматическое закрытие через
duration При указании времени жизни уведомления
через опцию duration, Toastify автоматически удаляет
уведомление после истечения заданного времени. Для выполнения действий
после закрытия можно использовать коллбек onClose.
Toastify({
text: "Уведомление будет закрыто через 3 секунды",
duration: 3000,
close: true,
gravity: "top",
position: "right",
onClose: function() {
console.log("Уведомление закрыто автоматически");
}
}).showToast();
Ключевые моменты:
duration задаёт время в миллисекундах, через которое
уведомление исчезнет.onClose вызывается один раз после полного закрытия
уведомления.Закрытие пользователем вручную через кнопку При
включении опции close: true Toastify добавляет кнопку для
ручного закрытия. Коллбек onClose срабатывает как при
автоматическом закрытии, так и при нажатии на кнопку.
Toastify({
text: "Нажмите крестик для закрытия",
close: true,
gravity: "bottom",
position: "left",
onClose: function() {
console.log("Уведомление закрыто пользователем");
}
}).showToast();
Особенности ручного закрытия:
duration.onClose обеспечивается независимо от способа
закрытия.Обработку закрытия уведомлений можно использовать для различных сценариев:
Очистка элементов интерфейса Если уведомление
отображалось поверх модального окна или формы, onClose
позволяет вернуть интерфейс в исходное состояние.
Toastify({
text: "Форма успешно отправлена",
duration: 4000,
onClose: () => {
document.getElementById("form").reset();
}
}).showToast();Логирование действий пользователей Событие закрытия полезно для аналитики — можно отслеживать, сколько уведомлений было закрыто вручную.
Toastify({
text: "Событие логируется",
close: true,
onClose: () => {
fetch("/log-toast-close", { method: "POST" });
}
}).showToast();Последовательное отображение уведомлений Можно
использовать onClose для запуска следующего уведомления
после закрытия текущего.
Toastify({
text: "Первое уведомление",
duration: 2000,
onClose: () => {
Toastify({ text: "Второе уведомление", duration: 2000 }).showToast();
}
}).showToast();hideToast()Помимо автоматического и ручного закрытия, Toastify позволяет
программно закрывать уведомление через метод
hideToast().
const toast = Toastify({
text: "Это уведомление будет закрыто программно",
close: true,
duration: 5000,
onClose: () => {
console.log("Уведомление закрыто программно");
}
});
toast.showToast();
// Закрытие через 2 секунды
setTimeout(() => {
toast.hideToast();
}, 2000);
Преимущества использования
hideToast():
onClose.При отображении нескольких уведомлений одновременно каждое имеет
собственный коллбек onClose. Это позволяет точно управлять
состоянием интерфейса для каждого уведомления отдельно.
const firstToast = Toastify({ text: "Первое", duration: 3000, onClose: () => console.log("Первое закрыто") });
const secondToast = Toastify({ text: "Второе", duration: 4000, onClose: () => console.log("Второе закрыто") });
firstToast.showToast();
secondToast.showToast();
onClose каждого уведомления срабатывает
индивидуально.Обработка закрытия уведомлений в Toastify — это мощный инструмент для
управления пользовательским интерфейсом и взаимодействия с действиями
пользователей. Использование опции onClose в сочетании с
автоматическим, ручным и программным закрытием позволяет строить гибкую
и интерактивную логику.