diff options
| author | Adam <[email protected]> | 2025-12-10 21:16:50 -0600 |
|---|---|---|
| committer | Adam <[email protected]> | 2025-12-11 06:48:58 -0600 |
| commit | 3bb546c94d6bb295bfeafdafbb9d34b7cc462560 (patch) | |
| tree | 54ae4fa1b18c68d23ff460caab596e942593a857 /packages/desktop/src/context/sync.tsx | |
| parent | 8e15bcb68e9a8a37bb12afca3984f3967ccb58eb (diff) | |
| download | opencode-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.tsx | 23 |
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 |
