Refactor svg-layout-designer component into controllers + Add setLoaded
This commit is contained in:
parent
2ea43890f0
commit
8ba19cc96b
3 changed files with 140 additions and 87 deletions
|
@ -44,7 +44,8 @@ function UseHTTPGETStatePreloading(
|
|||
function UseCustomEvents(
|
||||
root: Element | Document,
|
||||
appRef: React.RefObject<HTMLDivElement>,
|
||||
setEditor: (newState: IEditorState) => void
|
||||
setEditor: (newState: IEditorState) => void,
|
||||
setLoaded: (loaded: boolean) => void
|
||||
): void {
|
||||
useEffect(() => {
|
||||
const funcs = new Map<string, () => void>();
|
||||
|
@ -53,6 +54,7 @@ function UseCustomEvents(
|
|||
return event.func(
|
||||
root,
|
||||
setEditor,
|
||||
setLoaded,
|
||||
eventInitDict
|
||||
);
|
||||
}
|
||||
|
@ -96,7 +98,8 @@ export function App(props: IAppProps): JSX.Element {
|
|||
UseCustomEvents(
|
||||
props.root,
|
||||
appRef,
|
||||
setEditorState
|
||||
setEditorState,
|
||||
setLoaded
|
||||
);
|
||||
|
||||
UseHTTPGETStatePreloading(isLoaded, setEditorState, setLoaded);
|
||||
|
|
|
@ -5,17 +5,20 @@ export interface IAppEvent {
|
|||
func: (
|
||||
root: Element | Document,
|
||||
setEditor: (newState: IEditorState) => void,
|
||||
setLoaded: (loaded: boolean) => void,
|
||||
eventInitDict?: CustomEventInit
|
||||
) => void
|
||||
}
|
||||
|
||||
export const events: IAppEvent[] = [
|
||||
{ name: 'setEditor', func: SetEditor }
|
||||
{ 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;
|
||||
|
@ -23,3 +26,13 @@ function SetEditor(
|
|||
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);
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue