|
1 | | -// Copyright 2025, Command Line Inc. |
| 1 | +// Copyright 2026, Command Line Inc. |
2 | 2 | // SPDX-License-Identifier: Apache-2.0 |
3 | 3 |
|
4 | 4 | import { ModalsRenderer } from "@/app/modals/modalsrenderer"; |
5 | 5 | import { globalStore } from "@/app/store/jotaiStore"; |
| 6 | +import { WaveEnvContext } from "@/app/waveenv/waveenv"; |
| 7 | +import { makeWaveEnvImpl } from "@/app/waveenv/waveenvimpl"; |
6 | 8 | import { AppSelectionModal } from "@/builder/app-selection-modal"; |
7 | 9 | import { BuilderWorkspace } from "@/builder/builder-workspace"; |
8 | 10 | import { atoms, isDev } from "@/store/global"; |
9 | 11 | import { appHandleKeyDown } from "@/store/keymodel"; |
10 | 12 | import * as keyutil from "@/util/keyutil"; |
11 | 13 | import { isBlank } from "@/util/util"; |
12 | 14 | import { Provider, useAtomValue } from "jotai"; |
13 | | -import { useEffect } from "react"; |
| 15 | +import { useEffect, useRef } from "react"; |
14 | 16 | import { DndProvider } from "react-dnd"; |
15 | 17 | import { HTML5Backend } from "react-dnd-html5-backend"; |
16 | 18 |
|
@@ -60,13 +62,16 @@ function BuilderAppInner() { |
60 | 62 | } |
61 | 63 |
|
62 | 64 | export function BuilderApp({ initOpts, onFirstRender }: BuilderAppProps) { |
| 65 | + const waveEnvRef = useRef(makeWaveEnvImpl()); |
63 | 66 | useEffect(() => { |
64 | 67 | onFirstRender(); |
65 | 68 | }, []); |
66 | 69 |
|
67 | 70 | return ( |
68 | 71 | <Provider store={globalStore}> |
69 | | - <BuilderAppInner /> |
| 72 | + <WaveEnvContext.Provider value={waveEnvRef.current}> |
| 73 | + <BuilderAppInner /> |
| 74 | + </WaveEnvContext.Provider> |
70 | 75 | </Provider> |
71 | 76 | ); |
72 | 77 | } |
0 commit comments