Перейти к основному содержимому
Версия: 26.1.0 (в разработке)

Interface: CustomToast

Интерфейс параметров всплывающего уведомления.

Описывает всё необходимое для отображения уведомления: содержимое, тип, время отображения. Все параметры передаются в одном объекте для полной прозрачности.

Remarks

Структура уведомления:

  • id — уникальный идентификатор
  • content — текст или HTML разметка
  • contentType — тип контента ('text' или 'html')
  • type — тип уведомления (error или undefined для info)
  • autohideIntervalMs — время отображения в миллисекундах

Наследуемые свойства:

  • От BaseUiElement: id (обязательно)
  • От HasContent: content (обязательно), contentType (опционально)

Extends

Properties

autohideIntervalMs?

readonly optional autohideIntervalMs: number

Временной интервал в миллисекундах, через который уведомление автоматически закроется.

Remarks

Значения:

  • undefined — использует стандартный таймаут редактора (3-5 секунд)
  • 3000 — 3 секунды (для кратких сообщений об успехе)
  • 5000 — 5 секунд (для важных ошибок и предупреждений)
  • 10000 — 10 секунд (для критических ошибок)
  • 0 или отрицательное — уведомление не закроется автоматически (не рекомендуется)

Default

undefined (3-5 секунд в зависимости от редактора)

Example

Быстро исчезающее сообщение об успехе

editorApi.ui.toasts.showToast({
id: 'plugin:toast:quick',
content: 'Готово!',
autohideIntervalMs: 2000 // 2 секунды
});

Длительное сообщение об ошибке

editorApi.ui.toasts.showToast({
id: 'plugin:toast:error',
content: 'Критическая ошибка при обработке файла',
type: 'error',
autohideIntervalMs: 10000 // 10 секунд
});

content

readonly content: string

Содержимое элемента, предназначенное для отображения пользователю.

Remarks

Формат:

  • Если contentType = 'plain/text' — обычная строка текста
  • Если contentType = 'html' — строка с HTML разметкой

Ограничения:

  • Не должна быть пустой (может вызвать проблемы отображения)
  • Максимальный размер зависит от браузера (обычно несколько MB)
  • HTML содержимое фильтруется в целях безопасности

Example

// Обычный текст
{
content: 'Это простой текст',
contentType: 'plain/text'
}

// HTML
{
content: '<h2>Заголовок</h2><p>Абзац текста</p>',
contentType: 'html'
}

Inherited from

HasContent.content


contentType?

readonly optional contentType: UiContentType

Тип содержимого, определяющий как интерпретировать поле content.

Remarks

Значения:

  • 'plain/text' — содержимое это обычный текст

    • Все символы отображаются как есть
  • 'html' — содержимое это HTML разметка

    • HTML теги интерпретируются и отображаются
    • Небезопасные теги и атрибуты удаляются

Default

'plain/text'

Example


// HTML — теги интерпретируются
{
content: 'Текст с <strong>жирным</strong> словом',
contentType: 'html'
}
// Отобразится: "Текст с жирным словом" (жирное)

// Без указания — используется plain/text
{
content: 'Простое содержимое'
// Эквивалент: contentType: 'plain/text'
}

See

UiContentType — возможные значения

Inherited from

HasContent.contentType


id

readonly id: string

Уникальный идентификатор элемента пользовательского интерфейса.

Remarks

Требования:

  • Должен быть уникален среди всех элементов UI редактора
  • Не может быть пустой строкой
  • Не может содержать спецсимволы (кроме :, -, _)
  • Чувствителен к регистру (case-sensitive)

Использование:

  • Идентификация элемента при обновлении
  • Идентификация элемента при событиях
  • Ссылка на элемент в других местах кода

Соглашения:

'plugin:button:save'          // Кнопка надстройки
'plugin:input:username' // Поле ввода
'plugin:panel:settings' // Панель параметров
'plugin:group:formatting' // Группа элементов

Example

// Создание элемента с уникальным id
{
id: 'plugin:button:submit',
title: 'Отправить',
type: 'button'
}

// Использование id для обновления
editorApi.ui.updateUiNodes([
{
id: 'plugin:button:submit',
updates: { disabled: false }
}
]);

// Использование id для удаления
editorApi.ui.ribbon.removeTabs(['plugin:ribbon:tab']);

Inherited from

BaseUiElement.id


type?

readonly optional type: "error"

Тип уведомления, определяющий его внешний вид и семантику.

Влияет на цвет, иконку и визуальное представление уведомления.

Remarks

Типы:

  • 'error' — красное уведомление, крест ✕

    • Используется для ошибок и проблем
    • Пример: "Ошибка при загрузке файла"
  • undefined — нейтральное (серое или синее) уведомление

    • Используется для информации
    • Пример: "Загрузка выполняется..."

Выбор типа:

Успешная операция → success
Ошибка или проблема → error
Внимание нужно → warning
Просто информация → undefined (info)

Default

undefined (информационное, нейтральное)

Example

Разные типы уведомлений


editorApi.ui.toasts.showToast({
id: 'error',
content: 'Не удалось подключиться к серверу',
type: 'error'
});

editorApi.ui.toasts.showToast({
id: 'info',
content: 'Выполняется синхронизация...'
// type не указан, будет информационное уведомление
});

Практическое применение в операции

async function saveDocument() {
try {
editorApi.ui.toasts.showToast({ id, content: 'Сохранение...' });
await editorApi.document.save();
editorApi.ui.toasts.showToast({ id, content: 'Документ сохранён' });
} catch (error) {
editorApi.ui.toasts.showToast({ id, type: 'error', content: 'Ошибка при сохранении: ' + error.message});
}
}