diff --git a/packages/threat-composer/src/components/generic/WindowExporter/index.tsx b/packages/threat-composer/src/components/generic/WindowExporter/index.tsx index 7c527b3b..83bd157b 100644 --- a/packages/threat-composer/src/components/generic/WindowExporter/index.tsx +++ b/packages/threat-composer/src/components/generic/WindowExporter/index.tsx @@ -43,6 +43,7 @@ window.threatcomposer = { Promise.resolve(PLACEHOLDER_EXCHANGE_DATA_FOR_WORKSPACE), deleteWorkspace: () => Promise.resolve(), renameWorkspace: () => Promise.resolve(), + apiReady: false, }; /** @@ -69,35 +70,23 @@ const WindowExporter: FC> = ({ children }) => { useEffect(() => { window.threatcomposer.getWorkspaceList = () => workspaceList; - }, [workspaceList]); - - useEffect(() => { window.threatcomposer.getCurrentWorkspaceMetadata = () => currentWorkspace; - }, [currentWorkspace]); - - useEffect(() => { window.threatcomposer.getCurrentWorkspaceData = getWorkspaceData; - }, [getWorkspaceData]); - - useEffect(() => { window.threatcomposer.setCurrentWorkspaceData = setWorkspaceData; - }, [setWorkspaceData]); - - useEffect(() => { window.threatcomposer.createWorkspace = addWorkspace; - }, [addWorkspace]); - - useEffect(() => { window.threatcomposer.deleteWorkspace = deleteWorkspace; - }, [deleteWorkspace]); - - useEffect(() => { window.threatcomposer.switchWorkspace = switchWorkspace; - }, [switchWorkspace]); - - useEffect(() => { window.threatcomposer.renameWorkspace = renameWorkspace; - }, [renameWorkspace]); + window.threatcomposer.apiReady = true; + }, [ + workspaceList, + currentWorkspace, + getWorkspaceData, + addWorkspace, + deleteWorkspace, + switchWorkspace, + renameWorkspace, + ]); return <>{children}; }; diff --git a/packages/threat-composer/src/customTypes/dataExchange.ts b/packages/threat-composer/src/customTypes/dataExchange.ts index 8467fc0a..59b6071e 100644 --- a/packages/threat-composer/src/customTypes/dataExchange.ts +++ b/packages/threat-composer/src/customTypes/dataExchange.ts @@ -72,4 +72,5 @@ export interface ThreatComposerNamespace { metadata?: Workspace['metadata']) => Promise; deleteWorkspace: (id: string) => Promise; renameWorkspace: (id: string, newWorkspaceName: string) => Promise; + apiReady: boolean; } \ No newline at end of file