Interface: CustomToast
Интерфейс параметров всплывающего уведомления.
Описывает всё необходимое для отображения уведомления: содержимое, тип, время отображения. Все параметры передаются в одном объекте для полной прозрачности.
Remarks
Структура уведомления:
- id — уникальный идентификатор
- content — текст или HTML разметка
- contentType — тип контента ('text' или 'html')
- type — тип уведомления (error или undefined для info)
- autohideIntervalMs — время отображения в миллисекундах
Наследуемые свойства:
- От BaseUiElement: id (обязательно)
- От HasContent: content (обязательно), contentType (опционально)
Extends
Properties
autohideIntervalMs?
readonlyoptionalautohideIntervalMs: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
readonlycontent: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
contentType?
readonlyoptionalcontentType: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
id
readonlyid: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
type?
readonlyoptionaltype:"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});
}
}