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

Interface: ModalButton

Интерфейс параметров кнопки в модальном окне.

Определяет название и поведение кнопки при нажатии.

Remarks

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

  • Используется в CustomModal.okButton и CustomConfirmation
  • Оба свойства (title и onClick) опциональны
  • Если title не указан, используется значение по умолчанию ("ОК" или "Отмена")
  • Если onClick не указан, окно просто закроется при нажатии

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

  • От MayHaveTitle: title (опционально)

Properties

onClick?

readonly optional onClick: Callback

Обработчик события, вызываемый при нажатии на кнопку.

Окно закроется после завершения обработчика.

Remarks

Если не указан:

  • Окно просто закроется при нажатии кнопки
  • Никаких дополнительных действий не выполняется

Если указан:

  • Будет вызван при нажатии кнопки
  • Может выполнять любые операции (API вызовы, обновления UI, логирование)
  • Окно закроется после завершения обработчика

Особенности:

  • Обработчик создаётся через EditorApi.createCallback
  • Может быть синхронным или асинхронным (async/await)
  • Может показывать уведомления и взаимодействовать с другими API

Example

Без обработчика (просто закрывает окно)

const button: ModalButton = {
title: 'ОК'
// onClick не указан
};

С простым обработчиком

const button: ModalButton = {
title: 'Согласен',
onClick: editorApi.createCallback(() => {
console.log('Пользователь нажал кнопку');
})
};

С асинхронным обработчиком

const button: ModalButton = {
title: 'Сохранить',
onClick: editorApi.createCallback(async () => {
editorApi.ui.toasts.showToast({ id, content: 'Сохранение...' });
await saveDocument();
editorApi.ui.toasts.showToast({ id, content: 'Сохранено' });
})
};

С использованием других API

const button: ModalButton = {
title: 'Применить',
onClick: editorApi.createCallback(async () => {
// Обновить UI элемент в боковой панели
editorApi.ui.updateUiNodes([
{
id: 'plugin:info',
updates: { content: 'Применено!' }
}
]);
// Показать уведомление
editorApi.ui.toasts.showToast({ id, content: 'Параметры применены' });
})
};

See


title?

readonly optional title: string

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

Remarks

Требования:

  • Должен быть локализирован (переведён на язык пользователя)
  • Должен быть понятным и кратким
  • Не должен быть пустой строкой
  • Может содержать спецсимволы (кроме < и >)

Примеры:

  • "Сохранить документ"
  • "Экспортировать в PDF"
  • "Параметры надстройки"
  • "Об приложении"

Советы:

  • Используйте глаголы для действий (Сохранить, Удалить)
  • Используйте существительные для панелей (Параметры, Информация)
  • Сохраняйте названия короткими
  • Будьте конкретными (не просто "Опции", а "Параметры надстройки")

Example

{
id: 'button:save',
title: 'Сохранить', // Локализирован
type: 'button'
}

Inherited from

HasTitle.title