Notifier API: показ уведомлений
Показ уведомлений пользователям. Отрисовку можно подменить. Передайте notifier: (options) => … в конфигурации конструктора, и Blok вызовет ваш обработчик вместо собственной отрисовки.
Встроенный тост пропускается полностью, вместе со значениями okText/cancelText из i18n. Любая ошибка вашего обработчика доходит до места вызова show().
notifierPosition задаёт положение встроенного контейнера: 'bottom-left' | 'bottom-right' | 'bottom-center' | 'top-left' | 'top-right' | 'top-center' (по умолчанию 'bottom-center').
Как получить экземпляр редактора
Методы ниже вызываются на редакторе, созданном через new Blok(). Они доступны после того, как разрешится editor.isReady.
// You already hold the instance returned by the constructor.
const editor = new Blok({ holder: 'editor' });
await editor.isReady;
// Call any API method on it.
editor.caret.setToLastBlock('end');Методы
notifier.show(options)
voidПоказать уведомление. Поддерживает простые уведомления, confirm и prompt.
Когда использовать
Встроенный тост для лёгкой обратной связи. Задайте type: 'confirm' или 'prompt', чтобы получить ответ да/нет или текст.
Параметры
| Параметр | Тип | Обязательный | По умолчанию | Описание |
|---|---|---|---|---|
options | NotifierOptions | ConfirmNotifierOptions | PromptNotifierOptions | Обязательный | — | Конфигурация уведомления. Форма зависит от |
options.message | string | Обязательный | — | Текст уведомления. Может содержать HTML. |
options.type | 'alert' | 'confirm' | 'prompt' | — | 'alert' | Тип уведомления. |
options.style | 'success' | 'error' | — | undefined | Обозначает семантический вид уведомления. При Встроенный тост в обоих случаях выглядит одинаково. Раскраски success/error нет. |
options.time | number | — | 8000 | Время автозакрытия в мс для уведомлений-алертов (по умолчанию 8000). |
options.okText | string | — | i18n `notifier.confirm` / `notifier.ok` ('Confirm' / 'OK' in English) | Текст кнопки подтверждения/отправки (только для |
options.okHandler | (event: Event) => void | (value: string) => void | — | undefined | Колбэк подтверждения/отправки. Получает событие клика для |
options.cancelText | string | — | i18n `notifier.cancel` ('Cancel' in English) | Текст кнопки отмены (типы |
options.cancelHandler | (event: Event) => void | — | undefined | Колбэк отмены/закрытия. Если вы его передали, Blok вызывает его перед закрытием диалога по кнопке отмены, по закрытию или Esc. Это работает и для типа |
options.inputType | string | — | 'text' | Тип HTML-поля ввода для текстового поля prompt (только для типа prompt). |
options.placeholder | string | — | undefined | Текст плейсхолдера для поля ввода prompt (только для типа prompt). |
options.default | string | — | undefined | Значение по умолчанию, предзаполненное в поле ввода prompt (только для типа prompt). |
Ошибки
Модуль уведомлений не загрузился (например, заблокирован CSP, ошибка динамического импорта).
[Blok] Failed to display notification. Reason: <error>
Встроенный notifier никогда не выбрасывает ошибку и не отклоняет промис. Смотрите консоль браузера: сбой только логируется и в точку вызова не передаётся. С пользовательским обработчиком
config.notifierвсё иначе. Blok вызывает его синхронно, и его исключения не перехватываются.
// Simple notification
editor.notifier.show({
message: 'Changes saved',
style: 'success'
});
// → renders a body-mounted, viewport-fixed toast (default: bottom-center —
// see config.notifierPosition); returns nothing to await
// Confirm notification
editor.notifier.show({
message: 'Delete this block?',
type: 'confirm',
okHandler: () => console.log('Confirmed'),
cancelHandler: () => console.log('Cancelled')
});
// Prompt notification
editor.notifier.show({
message: 'Enter a title',
type: 'prompt',
okHandler: (value) => console.log('Entered:', value)
});