({
version,
buildTime,
repoUrl,
}: OpenTraceAppProps = {})
| 74 | * in-browser WASM graph store. |
| 75 | */ |
| 76 | export function OpenTraceApp({ |
| 77 | version, |
| 78 | buildTime, |
| 79 | repoUrl, |
| 80 | }: OpenTraceAppProps = {}) { |
| 81 | const [mode, setMode] = useState<StoreMode>(detectInitialMode); |
| 82 | const [store, setStore] = useState<GraphStore>(() => |
| 83 | createStoreForMode(mode), |
| 84 | ); |
| 85 | |
| 86 | const handleConnectServer = useCallback((serverUrl: string) => { |
| 87 | // Leaving in-memory mode: tear down the local Web Worker + WASM DB so it |
| 88 | // doesn't linger for the page lifetime. No-op if it was never created. |
| 89 | disposeLadybugStore(); |
| 90 | const nextMode: StoreMode = `server:${serverUrl}`; |
| 91 | setMode(nextMode); |
| 92 | setStore(createStoreForMode(nextMode)); |
| 93 | }, []); |
| 94 | |
| 95 | return ( |
| 96 | <StoreProvider key={mode} store={store}> |
| 97 | <JobServiceProvider> |
| 98 | <App |
| 99 | version={version} |
| 100 | buildTime={buildTime} |
| 101 | initialRepoUrl={repoUrl} |
| 102 | onConnectServer={handleConnectServer} |
| 103 | /> |
| 104 | </JobServiceProvider> |
| 105 | </StoreProvider> |
| 106 | ); |
| 107 | } |
| 108 | |
| 109 | export default OpenTraceApp; |
nothing calls this directly
no test coverage detected