svg-layout-designer-react/src/Events/AppEvents.ts

38 lines
1 KiB
TypeScript

import { IEditorState } from '../Interfaces/IEditorState';
export interface IAppEvent {
name: string
func: (
root: Element | Document,
setEditor: (newState: IEditorState) => void,
setLoaded: (loaded: boolean) => void,
eventInitDict?: CustomEventInit
) => void
}
export const events: IAppEvent[] = [
{ name: 'setEditor', func: SetEditor },
{ name: 'setLoaded', func: SetLoaded }
];
function SetEditor(
root: Element | Document,
setEditor: (newState: IEditorState) => void,
setLoaded: (loaded: boolean) => void,
eventInitDict?: CustomEventInit
): void {
const editor: IEditorState = eventInitDict?.detail;
setEditor(editor);
const customEvent = new CustomEvent<IEditorState>('setEditor', { detail: editor });
root.dispatchEvent(customEvent);
}
function SetLoaded(
root: Element | Document,
setEditor: (newState: IEditorState) => void,
setLoaded: (loaded: boolean) => void,
eventInitDict?: CustomEventInit
): void {
const isLoaded: boolean = eventInitDict?.detail;
setLoaded(isLoaded);
}