From 7a8e1029a42d33eefc22ad418ed04392e1029be2 Mon Sep 17 00:00:00 2001 From: Artur Arseniev Date: Tue, 17 Feb 2026 14:01:29 +0400 Subject: [PATCH] Add callback types to modal --- packages/core/src/editor/types.ts | 5 +++-- packages/core/src/modal_dialog/index.ts | 3 +-- packages/core/src/modal_dialog/types.ts | 18 ++++++++++++++++++ 3 files changed, 22 insertions(+), 4 deletions(-) diff --git a/packages/core/src/editor/types.ts b/packages/core/src/editor/types.ts index e04306099..55f5a1b90 100644 --- a/packages/core/src/editor/types.ts +++ b/packages/core/src/editor/types.ts @@ -8,7 +8,7 @@ import { DeviceEvent, DevicesEventCallback } from '../device_manager/types'; import { ComponentEvent } from '../dom_components'; import { I18nEvent, I18nEventCallback } from '../i18n/types'; import { KeymapEvent, KeymapsEventCallback } from '../keymaps/types'; -import { ModalEvent } from '../modal_dialog'; +import { ModalEvent, ModalEventCallback } from '../modal_dialog/types'; import { RichTextEditorEvent } from '../rich_text_editor'; import { SelectorEvent } from '../selector_manager'; import { StyleManagerEvent } from '../style_manager'; @@ -48,7 +48,8 @@ export interface EditorEventCallbacks DataSourcesEventCallback, DevicesEventCallback, I18nEventCallback, - KeymapsEventCallback + KeymapsEventCallback, + ModalEventCallback { [key: string]: any[]; } diff --git a/packages/core/src/modal_dialog/index.ts b/packages/core/src/modal_dialog/index.ts index aad40aee7..ff1ddec1b 100644 --- a/packages/core/src/modal_dialog/index.ts +++ b/packages/core/src/modal_dialog/index.ts @@ -40,8 +40,7 @@ import defConfig, { ModalConfig } from './config/config'; import ModalM from './model/Modal'; import { ModalEvents } from './types'; import ModalView from './view/ModalView'; - -export type ModalEvent = `${ModalEvents}`; +export type { ModalEvent } from './types'; export default class ModalModule extends Module { modal?: ModalView; diff --git a/packages/core/src/modal_dialog/types.ts b/packages/core/src/modal_dialog/types.ts index eda97a0e9..cba18fe93 100644 --- a/packages/core/src/modal_dialog/types.ts +++ b/packages/core/src/modal_dialog/types.ts @@ -1,3 +1,5 @@ +import { ObjectAny } from '../common'; + /**{START_EVENTS}*/ export enum ModalEvents { /** @@ -23,5 +25,21 @@ export enum ModalEvents { } /**{END_EVENTS}*/ +export type ModalEvent = `${ModalEvents}`; + +export interface ModalEventData { + open: boolean; + attributes: ObjectAny; + title: Node; + content: Node; + close: () => void; +} + +export interface ModalEventCallback { + [ModalEvents.open]: []; + [ModalEvents.close]: []; + [ModalEvents.all]: [ModalEventData]; +} + // need this to avoid the TS documentation generator to break export default ModalEvents;