Перейти к содержимому
ФреймворкJavaScript

Notifier API: показ уведомлений

Показ уведомлений пользователям. Отрисовку можно подменить. Передайте notifier: (options) => … в конфигурации конструктора, и Blok вызовет ваш обработчик вместо собственной отрисовки.

Встроенный тост пропускается полностью, вместе со значениями okText/cancelText из i18n. Любая ошибка вашего обработчика доходит до места вызова show().

notifierPosition задаёт положение встроенного контейнера: 'bottom-left' | 'bottom-right' | 'bottom-center' | 'top-left' | 'top-right' | 'top-center' (по умолчанию 'bottom-center').

Обновлено 8 сент. 2026 г.Редактировать на GitHub

Как получить экземпляр редактора

Методы ниже вызываются на редакторе, созданном через new Blok(). Они доступны после того, как разрешится editor.isReady.

TypeScript
// 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', чтобы получить ответ да/нет или текст.

Параметры

ПараметрТипОбязательныйПо умолчаниюОписание
optionsNotifierOptions | ConfirmNotifierOptions | PromptNotifierOptionsОбязательный—

Конфигурация уведомления. Форма зависит от type.

options.messagestringОбязательный—

Текст уведомления. Может содержать HTML.

options.type'alert' | 'confirm' | 'prompt'—'alert'

Тип уведомления. confirm и prompt добавляют кнопки действий.

options.style'success' | 'error'—undefined

Обозначает семантический вид уведомления. При 'error' live-регион сообщения для скринридеров становится assertive. Иначе он polite. Само значение попадает в data-blok-testid как notification-success / notification-error.

Встроенный тост в обоих случаях выглядит одинаково. Раскраски success/error нет.

options.timenumber—8000

Время автозакрытия в мс для уведомлений-алертов (по умолчанию 8000). confirm и prompt это значение игнорируют и остаются на экране, пока пользователь не ответит.

options.okTextstring—i18n `notifier.confirm` / `notifier.ok` ('Confirm' / 'OK' in English)

Текст кнопки подтверждения/отправки (только для confirm/prompt).

options.okHandler(event: Event) => void | (value: string) => void—undefined

Колбэк подтверждения/отправки. Получает событие клика для confirm или значение поля для prompt. Обязателен для уведомлений типа prompt.

options.cancelTextstring—i18n `notifier.cancel` ('Cancel' in English)

Текст кнопки отмены (типы confirm и prompt).

options.cancelHandler(event: Event) => void—undefined

Колбэк отмены/закрытия. Если вы его передали, Blok вызывает его перед закрытием диалога по кнопке отмены, по закрытию или Esc. Это работает и для типа confirm, и для prompt.

options.inputTypestring—'text'

Тип HTML-поля ввода для текстового поля prompt (только для типа prompt).

options.placeholderstring—undefined

Текст плейсхолдера для поля ввода prompt (только для типа prompt).

options.defaultstring—undefined

Значение по умолчанию, предзаполненное в поле ввода prompt (только для типа prompt).

Ошибки

  • Модуль уведомлений не загрузился (например, заблокирован CSP, ошибка динамического импорта).

    [Blok] Failed to display notification. Reason: <error>

    Встроенный notifier никогда не выбрасывает ошибку и не отклоняет промис. Смотрите консоль браузера: сбой только логируется и в точку вызова не передаётся. С пользовательским обработчиком config.notifier всё иначе. Blok вызывает его синхронно, и его исключения не перехватываются.

TypeScript
// 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)
});