summaryrefslogtreecommitdiffhomepage
path: root/packages/desktop/src/context/sync.tsx
diff options
context:
space:
mode:
authorAdam <[email protected]>2025-12-10 21:16:50 -0600
committerAdam <[email protected]>2025-12-11 06:48:58 -0600
commit3bb546c94d6bb295bfeafdafbb9d34b7cc462560 (patch)
tree54ae4fa1b18c68d23ff460caab596e942593a857 /packages/desktop/src/context/sync.tsx
parent8e15bcb68e9a8a37bb12afca3984f3967ccb58eb (diff)
downloadopencode-3bb546c94d6bb295bfeafdafbb9d34b7cc462560.tar.gz
opencode-3bb546c94d6bb295bfeafdafbb9d34b7cc462560.zip
wip(desktop): progress
Diffstat (limited to 'packages/desktop/src/context/sync.tsx')
-rw-r--r--packages/desktop/src/context/sync.tsx23
1 files changed, 20 insertions, 3 deletions
diff --git a/packages/desktop/src/context/sync.tsx b/packages/desktop/src/context/sync.tsx
index 1a11cd599..d64fcce2a 100644
--- a/packages/desktop/src/context/sync.tsx
+++ b/packages/desktop/src/context/sync.tsx
@@ -1,5 +1,5 @@
import { produce } from "solid-js/store"
-import { createMemo } from "solid-js"
+import { createMemo, onMount } from "solid-js"
import { Binary } from "@opencode-ai/util/binary"
import { createSimpleContext } from "@opencode-ai/ui/context"
import { useGlobalSync } from "./global-sync"
@@ -31,7 +31,24 @@ export const { use: useSync, provider: SyncProvider } = createSimpleContext({
node: () => sdk.client.file.list({ path: "/" }).then((x) => setStore("node", x.data!)),
}
- Promise.all(Object.values(load).map((p) => p())).then(() => setStore("ready", true))
+ async function bootstrap() {
+ return Promise.all(Object.values(load).map((p) => p())).then(() => setStore("ready", true))
+ }
+
+ onMount(() => {
+ bootstrap()
+ })
+
+ sdk.event.listen((e) => {
+ if (e.name !== sdk.directory) return
+ const event = e.details
+ switch (event.type) {
+ case "server.instance.disposed": {
+ bootstrap()
+ break
+ }
+ }
+ })
const absolute = (path: string) => (store.path.directory + "/" + path).replace("//", "/")
@@ -82,7 +99,7 @@ export const { use: useSync, provider: SyncProvider } = createSimpleContext({
},
more: createMemo(() => store.session.length >= store.limit),
},
- load,
+ bootstrap,
absolute,
get directory() {
return store.path.directory