Библиотека iziToast предоставляет гибкий инструмент для отображения уведомлений в веб-приложениях. Одной из важных задач при работе с уведомлениями является контроль за их уникальностью: иногда требуется не создавать дубликаты, если уведомление с таким идентификатором уже отображается на экране. Для этого библиотека предлагает специальные механизмы.
idКаждое уведомление в iziToast может иметь свой
уникальный идентификатор через параметр id. Этот
идентификатор позволяет не только управлять уведомлением, но и проверять
его наличие.
Пример создания уведомления с уникальным id:
iziToast.show({
title: 'Ошибка',
message: 'Произошла ошибка при загрузке данных',
id: 'error-toast',
color: 'red',
position: 'topRight',
timeout: 5000
});
В данном примере id: 'error-toast' позволяет
идентифицировать уведомление в любой момент его существования.
Чтобы проверить, отображается ли уведомление с заданным
идентификатором, используется метод iziToast.get(). Он
возвращает массив всех текущих уведомлений, либо
конкретное уведомление по id.
Пример:
const existingToast = iziToast.get('error-toast');
if (existingToast) {
console.log('Уведомление уже отображается');
} else {
iziToast.show({
title: 'Ошибка',
message: 'Произошла ошибка при загрузке данных',
id: 'error-toast',
color: 'red',
position: 'topRight',
timeout: 5000
});
}
Пояснение:
iziToast.get('error-toast') вернет объект уведомления,
если оно активно.id отсутствует, метод
возвращает undefined.После проверки существования уведомления можно при необходимости его
закрыть с помощью iziToast.destroy():
iziToast.destroy(null, 'error-toast');
null означает, что метод применяется к
конкретному уведомлению.'error-toast' — идентификатор
уведомления, которое нужно удалить.Это полезно, если требуется обновить уведомление или заменить его новым сообщением.
Часто нужно не создавать новое уведомление, а обновлять существующее. Прямого метода обновления в iziToast нет, но можно реализовать логику через проверку существования и последующее удаление с повторным показом:
const toastId = 'info-toast';
if (iziToast.get(toastId)) {
iziToast.destroy(null, toastId);
}
iziToast.show({
title: 'Информация',
message: 'Новое обновление данных успешно выполнено',
id: toastId,
color: 'blue',
position: 'topRight',
timeout: 4000
});
Такой подход обеспечивает уникальность уведомления и предотвращает накопление дублирующихся тостов на экране.
id для всех критически важных
уведомлений — это стандартная практика, позволяющая отслеживать
активные сообщения.id для уведомлений с
разными контекстами, чтобы избежать случайного удаления нужного
сообщения.id на основе типа сообщения и контекста:const toastId = `user-${userId}-notification`;
Это позволяет управлять уведомлениями индивидуально для каждого пользователя или элемента интерфейса.
iziToast.get()id.Комбинируя id, iziToast.get() и
iziToast.destroy(), можно построить гибкую систему
уведомлений, где каждое сообщение проверяется на существование,
обновляется или удаляется по необходимости. Это снижает визуальный шум,
улучшает восприятие информации пользователем и обеспечивает точный
контроль над уведомлениями.