From 99ace75b102a8b842f48b9abaa3e7e66dfa73e2e Mon Sep 17 00:00:00 2001 From: Artur Arseniev Date: Tue, 17 Feb 2026 14:09:11 +0400 Subject: [PATCH] Add callback types for pages --- packages/core/src/editor/types.ts | 5 ++++- packages/core/src/pages/types.ts | 19 +++++++++++++++++++ 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/packages/core/src/editor/types.ts b/packages/core/src/editor/types.ts index fb5a584b8..81af3ae52 100644 --- a/packages/core/src/editor/types.ts +++ b/packages/core/src/editor/types.ts @@ -10,6 +10,7 @@ import { I18nEvent, I18nEventCallback } from '../i18n/types'; import { KeymapEvent, KeymapsEventCallback } from '../keymaps/types'; import { ModalEvent, ModalEventCallback } from '../modal_dialog/types'; import { LayerEvent, LayerEventCallback } from '../navigator/types'; +import { PageEvent, PagesEventCallback } from '../pages/types'; import { RichTextEditorEvent } from '../rich_text_editor'; import { SelectorEvent } from '../selector_manager'; import { StyleManagerEvent } from '../style_manager'; @@ -27,6 +28,7 @@ type EditorBuiltInEvents = | AssetEvent | KeymapEvent | LayerEvent + | PageEvent | StyleManagerEvent | StorageEvent | CanvasEvent @@ -52,7 +54,8 @@ export interface EditorEventCallbacks I18nEventCallback, KeymapsEventCallback, LayerEventCallback, - ModalEventCallback + ModalEventCallback, + PagesEventCallback { [key: string]: any[]; } diff --git a/packages/core/src/pages/types.ts b/packages/core/src/pages/types.ts index 4cd2a218f..5a3a688de 100644 --- a/packages/core/src/pages/types.ts +++ b/packages/core/src/pages/types.ts @@ -1,4 +1,6 @@ +import { AddOptions, EventCallbackRemove, EventCallbackRemoveBefore, EventCallbackUpdate, ObjectAny, SetOptions } from '../common'; import { ModuleConfig } from '../abstract/Module'; +import Page from './model/Page'; import { PageProperties } from './model/Page'; export interface PageManagerConfig extends ModuleConfig { @@ -66,5 +68,22 @@ export enum PagesEvents { } /**{END_EVENTS}*/ +export type PageEvent = `${PagesEvents}`; + +export interface PagesEventCallback { + [PagesEvents.add]: [Page, AddOptions]; + [PagesEvents.addBefore]: [ + PageProperties, + AddPage: () => Page | undefined, + AddOptions & SelectableOption & AbortOption, + ]; + [PagesEvents.remove]: EventCallbackRemove; + [PagesEvents.removeBefore]: EventCallbackRemoveBefore; + [PagesEvents.select]: [Page, Page | undefined]; + [PagesEvents.selectBefore]: [Page, SetOptions]; + [PagesEvents.update]: EventCallbackUpdate; + [PagesEvents.all]: [{ event: string; page: Page; options: ObjectAny }]; +} + // need this to avoid the TS documentation generator to break export default PagesEvents;