Interface: ModalButton
Интерфейс параметров кнопки в модальном окне.
Определяет название и поведение кнопки при нажатии.
Remarks
Использование:
- Используется в CustomModal.okButton и CustomConfirmation
- Оба свойства (title и onClick) опциональны
- Если title не указан, используется значение по умолчанию ("ОК" или "Отмена")
- Если onClick не указан, окно просто закроется при нажатии
Наследуемые свойства:
- От MayHaveTitle: title (опционально)
Properties
onClick?
readonlyoptionalonClick: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
- EditorApi.createCallback — создание обработчиков
- Callback — тип обработчика
title?
readonlyoptionaltitle:string
Название/заголовок элемента пользовательского интерфейса.
Remarks
Требования:
- Должен быть локализирован (переведён на язык пользователя)
- Должен быть понятным и кратким
- Не должен быть пустой строкой
- Может содержать спецсимволы (кроме < и >)
Примеры:
- "Сохранить документ"
- "Экспортировать в PDF"
- "Параметры надстройки"
- "Об приложении"
Советы:
- Используйте глаголы для действий (Сохранить, Удалить)
- Используйте существительные для панелей (Параметры, Информация)
- Сохраняйте названия короткими
- Будьте конкретными (не просто "Опции", а "Параметры надстройки")
Example
{
id: 'button:save',
title: 'Сохранить', // Локализирован
type: 'button'
}