В библиотеке iziToast переиспользуемые конфигурации позволяют централизованно задавать стандартные настройки уведомлений, что упрощает поддержку кода и обеспечивает единообразие интерфейса. Вместо многократного дублирования параметров для каждого уведомления используется объект конфигурации, который можно расширять или изменять для конкретных случаев.
Базовая конфигурация хранится в объекте и передается при создании уведомлений. Пример:
const baseConfig = {
position: 'topRight',
timeout: 5000,
progressBar: true,
close: true,
pauseOnHover: true,
theme: 'light',
transitionIn: 'fadeInDown',
transitionOut: 'fadeOutUp'
};
Здесь определены ключевые параметры:
position — расположение уведомления на экране
(topRight, topLeft, bottomRight,
bottomLeft, center).timeout — время отображения в миллисекундах.progressBar — отображение индикатора времени.close — наличие кнопки закрытия.pauseOnHover — приостановка таймера при наведении
курсора.theme — визуальная тема (light или
dark).transitionIn и transitionOut — анимации
появления и скрытия уведомления.Для отображения уведомления с базовой конфигурацией применяется метод
iziToast.show() с использованием оператора
распространения:
iziToast.show({
...baseConfig,
title: 'Успешно!',
message: 'Данные сохранены'
});
Оператор ... позволяет объединить базовую конфигурацию с
уникальными параметрами, такими как title и
message.
Можно создавать отдельные конфигурации для разных типов уведомлений:
const successConfig = {
...baseConfig,
color: 'green',
icon: 'fa fa-check'
};
const errorConfig = {
...baseConfig,
color: 'red',
icon: 'fa fa-times'
};
const infoConfig = {
...baseConfig,
color: 'blue',
icon: 'fa fa-info'
};
Использование специализированных конфигураций сокращает повторение кода и облегчает изменение визуального стиля для определенного типа уведомлений.
iziToast.show({
...successConfig,
title: 'Готово',
message: 'Операция завершена успешно'
});
iziToast.show({
...errorConfig,
title: 'Ошибка',
message: 'Не удалось сохранить данные'
});
Для максимальной переиспользуемости можно создать функции-обертки:
function showSuccess(message, title = 'Успешно!') {
iziToast.show({
...successConfig,
title,
message
});
}
function showError(message, title = 'Ошибка') {
iziToast.show({
...errorConfig,
title,
message
});
}
function showInfo(message, title = 'Информация') {
iziToast.show({
...infoConfig,
title,
message
});
}
Теперь вызов уведомления сводится к одной строке:
showSuccess('Данные успешно обновлены');
showError('Не удалось загрузить файл');
showInfo('Новые обновления доступны');
В крупных проектах полезно создавать объект
toastConfigs, содержащий все предопределенные
конфигурации:
const toastConfigs = {
base: baseConfig,
success: successConfig,
error: errorConfig,
info: infoConfig,
warning: {
...baseConfig,
color: 'orange',
icon: 'fa fa-exclamation-triangle'
}
};
Это позволяет централизованно управлять стилями уведомлений, изменяя их в одном месте. Например, смена позиции всех уведомлений:
toastConfigs.base.position = 'bottomLeft';
Все уведомления, использующие базовую конфигурацию или наследующие её, автоматически обновят позицию.
Библиотека поддерживает создание конфигураций на лету с помощью функций, возвращающих объект настроек:
function createToastConfig(type, message, title) {
const typeConfigs = {
success: { color: 'green', icon: 'fa fa-check' },
error: { color: 'red', icon: 'fa fa-times' },
info: { color: 'blue', icon: 'fa fa-info' }
};
return {
...baseConfig,
...typeConfigs[type],
title,
message
};
}
iziToast.show(createToastConfig('success', 'Файл загружен', 'Успешно'));
Это позволяет создавать уведомления с уникальными свойствами без дублирования кода, сохраняя единый стиль проекта.
iziToast также поддерживает методы
settings() и destroy(), которые упрощают
управление глобальными параметрами:
// Глобальное изменение таймаута
iziToast.settings({
timeout: 8000
});
// Очистка всех уведомлений
iziToast.destroy();
Использование глобальных настроек позволяет минимизировать необходимость передачи параметров в каждом уведомлении, если требуется единый стиль поведения.
Эти подходы делают работу с iziToast гибкой и структурированной, позволяя масштабировать уведомления в проекте без излишнего дублирования кода.