При работе с библиотекой Noty ключевым моментом является корректная настройка параметров уведомлений. Валидация параметров позволяет избежать ошибок во время выполнения и обеспечивает предсказуемое поведение уведомлений. Библиотека поддерживает множество опций, каждая из которых имеет определённый тип данных, допустимые значения и поведение по умолчанию.
text Тип: string Описание:
Содержимое уведомления. Валидация: обязательное поле. Если значение
отсутствует или не является строкой, уведомление не будет корректно
отображаться.
type Тип: string Возможные
значения: "alert", "success",
"warning", "error", "information"
Валидация: если передано значение вне допустимого диапазона, Noty
автоматически присваивает "alert".
timeout Тип: number или
false Описание: Время в миллисекундах, через которое
уведомление исчезнет автоматически. Валидация: значение должно быть
положительным числом либо false. Любые другие значения
игнорируются, и используется значение по умолчанию (5000 мс).
layout Тип: string Возможные
значения: "top", "topLeft",
"topRight", "bottom",
"bottomLeft", "bottomRight",
"center" Валидация: при неверном значении уведомление
отображается в "topRight".
theme Тип: string Возможные
значения: "mint", "metroui",
"relax", "semanticui",
"bootstrap-v4", "bootstrap-v3",
"nest" Валидация: при указании неподдерживаемого значения
библиотека использует тему "mint".
progressBar Тип: boolean Описание:
Отображение индикатора прогресса. Валидация: любые значения, кроме
true или false, приводят к использованию
значения по умолчанию true.
closeWith Тип: array Возможные
значения элементов массива: "click", "button",
"hover" Валидация: элементы, не относящиеся к допустимым,
игнорируются. Пустой массив отключает все способы закрытия.
Noty предоставляет возможность управлять поведением уведомлений через события:
onShowonCloseonClickonHoverКолбэки могут проверять внутренние данные уведомления перед его показом. Например, проверка длины текста:
new Noty({
text: "Пример уведомления",
type: "success",
timeout: 3000,
callbacks: {
onShow: function() {
if (this.options.text.length > 100) {
console.warn("Текст слишком длинный");
}
}
}
}).show();
В данном примере используется встроенный механизм событий для дополнительной проверки параметров перед отображением уведомления.
Для сложных объектов, например, animation или
buttons, важно валидировать вложенные свойства.
Пример: параметр animation
animation: {
open: 'animated bounceInRight',
close: 'animated bounceOutRight'
}
open и close должны быть строками,
представляющими CSS-классы.Пример: параметр buttons
buttons: [
Noty.button('OK', 'btn btn-success', function () { console.log('OK'); }),
Noty.button('Cancel', 'btn btn-error', function () { this.close(); })
]
Noty.button.Метод setText, setType,
setTimeout позволяет менять параметры уже отображаемого
уведомления. Важно применять те же правила валидации, что и при
создании:
let n = new Noty({ text: "Начальный текст" }).show();
n.setText(123); // неверный тип, текст не изменится
n.setText("Обновленный текст"); // корректно
Для крупных проектов рекомендуется использовать вспомогательные функции проверки:
function validateNotyOptions(options) {
if (typeof options.text !== 'string') options.text = '';
if (!['alert','success','warning','error','information'].includes(options.type)) options.type = 'alert';
if (typeof options.timeout !== 'number' && options.timeout !== false) options.timeout = 5000;
return options;
}
new Noty(validateNotyOptions({ text: 123, type: 'unknown', timeout: 'fast' })).show();
Такая практика позволяет централизовать контроль и избегать непредсказуемого поведения уведомлений.
text, type).animation,
buttons) перед передачей в Noty.Правильная валидация параметров повышает стабильность и предсказуемость работы уведомлений, предотвращая ошибки и некорректное отображение.