Skip to content

Commit 824df9b

Browse files
dboyd13Darran Boyd
andauthored
feat(ClientSideAPI): Hold React-baked API methods undefined until ready (#70)
* feat(ClientSideAPI): Hold API methods undefined until ready * chore(ClientSideAPI): set static (non-React) APIs with static mappings --------- Co-authored-by: Darran Boyd <[email protected]>
1 parent ea41400 commit 824df9b

File tree

3 files changed

+271
-209
lines changed

3 files changed

+271
-209
lines changed

packages/threat-composer/src/components/generic/WindowExporter/index.tsx

Lines changed: 7 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,7 @@
1616
import { useCallback, FC, PropsWithChildren, useEffect } from 'react';
1717
import { useWorkspacesContext } from '../../../contexts';
1818
import { ThreatComposerNamespace } from '../../../customTypes/dataExchange';
19-
import useExportImport, {
20-
PLACEHOLDER_EXCHANGE_DATA,
21-
PLACEHOLDER_EXCHANGE_DATA_FOR_WORKSPACE,
22-
} from '../../../hooks/useExportImport';
19+
import useExportImport from '../../../hooks/useExportImport';
2320
import useRemoveData from '../../../hooks/useRemoveData';
2421
import EventController from '../../../utils/EventController';
2522

@@ -36,17 +33,9 @@ const stringifyWorkspaceData = (data: any) => {
3633
const eventController = new EventController();
3734

3835
window.threatcomposer = {
39-
getWorkspaceList: () => [PLACEHOLDER_EXCHANGE_DATA_FOR_WORKSPACE],
40-
getCurrentWorkspaceMetadata: () => PLACEHOLDER_EXCHANGE_DATA_FOR_WORKSPACE,
41-
getCurrentWorkspaceData: () => PLACEHOLDER_EXCHANGE_DATA,
4236
stringifyWorkspaceData,
43-
setCurrentWorkspaceData: () => Promise.resolve(),
44-
switchWorkspace: () => {},
45-
createWorkspace: () =>
46-
Promise.resolve(PLACEHOLDER_EXCHANGE_DATA_FOR_WORKSPACE),
47-
deleteWorkspace: () => Promise.resolve(),
48-
renameWorkspace: () => Promise.resolve(),
49-
addEventListener: (eventName, eventHandler) => eventController.addEventListener(eventName, eventHandler),
37+
addEventListener: (eventName, eventHandler) =>
38+
eventController.addEventListener(eventName, eventHandler),
5039
dispatchEvent: (event) => eventController.dispatchEvent(event),
5140
};
5241

@@ -104,6 +93,10 @@ const WindowExporter: FC<PropsWithChildren<{}>> = ({ children }) => {
10493
window.threatcomposer.renameWorkspace = renameWorkspace;
10594
}, [renameWorkspace]);
10695

96+
useEffect(() => {
97+
window.threatcomposer.stringifyWorkspaceData = stringifyWorkspaceData;
98+
}, []);
99+
107100
return <>{children}</>;
108101
};
109102

0 commit comments

Comments
 (0)