38 lines
1 KiB
TypeScript
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);
|
|
}
|