Interface: Callback<Payload>
Тип для колбэков, созданных через EditorApi.createCallback.
Колбэки используются для обработки событий в элементах UI: нажатия кнопок, ввода текста, и т.д. Один колбэк можно использовать в нескольких элементах.
Remarks
Создание колбэка:
const myCallback = editorApi.createCallback(() => {
console.log('Колбэк вызван');
});
Использование в элементах:
- onClick для кнопок
- onInput для полей ввода
- onBlur/onFocus для текстовых элементов
- Любые другие события
Переиспользование колбэка: Один колбэк можно применить к разным элементам:
const saveCallback = editorApi.createCallback(async () => {
await saveDocument();
});
// В кнопке на ленте
editorApi.ui.ribbon.addTab({
groups: [{
controls: [{
onClick: saveCallback // Используем тот же колбэк
}]
}]
});
// В кнопке модального окна
editorApi.ui.modals.showModal({
okButton: {
onClick: saveCallback // Используем тот же колбэк
}
});
Example
Полный пример создания и использования колбэка
export default {
onInit: (editorApi) => {
// Функция логики
async function onSave() {
editorApi.ui.toasts.showToast({ id, content: 'Сохранение...' });
try {
await saveToServer();
editorApi.ui.toasts.showToast({ id, content: 'Сохранено' });
} catch (error) {
editorApi.ui.toasts.showToast({ id, type: 'error', content: 'Ошибка при сохранении' });
}
}
// Создание колбэка
const saveCallback = editorApi.createCallback(onSave);
// Использование в модальном окне
editorApi.ui.modals.showModal({
id: 'plugin:modal:save',
title: 'Сохранить?',
content: 'Хотите сохранить изменения?',
okButton: {
title: 'Сохранить',
onClick: saveCallback
}
});
// Использование в кнопке на ленте
editorApi.ui.ribbon.addTab({
id: 'plugin:ribbon:tab',
title: 'Надстройка',
groups: [{
controls: [{
id: 'plugin:button:save',
title: 'Сохранить',
type: 'button',
icon: 'Save',
onClick: saveCallback // Один колбэк в двух местах
}]
}]
});
}
}
Type Parameters
Payload
Payload = void
Тип данных, которые будут переданы в колбэк (по умолчанию void)
Properties
id
id:
string
Внутренний уникальный идентификатор колбэка, используется редактором