Browse Source

Add callback types for pages

type-event-callbacks
Artur Arseniev 1 month ago
parent
commit
99ace75b10
  1. 5
      packages/core/src/editor/types.ts
  2. 19
      packages/core/src/pages/types.ts

5
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[];
}

19
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<Page>;
[PagesEvents.removeBefore]: EventCallbackRemoveBefore<Page | undefined>;
[PagesEvents.select]: [Page, Page | undefined];
[PagesEvents.selectBefore]: [Page, SetOptions];
[PagesEvents.update]: EventCallbackUpdate<Page>;
[PagesEvents.all]: [{ event: string; page: Page; options: ObjectAny }];
}
// need this to avoid the TS documentation generator to break
export default PagesEvents;

Loading…
Cancel
Save