summaryrefslogtreecommitdiffhomepage
path: root/packages/desktop/src/context/sync.tsx
diff options
context:
space:
mode:
Diffstat (limited to 'packages/desktop/src/context/sync.tsx')
-rw-r--r--packages/desktop/src/context/sync.tsx50
1 files changed, 8 insertions, 42 deletions
diff --git a/packages/desktop/src/context/sync.tsx b/packages/desktop/src/context/sync.tsx
index 9c3abd731..85758c5b6 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, onMount } from "solid-js"
+import { createMemo } from "solid-js"
import { Binary } from "@opencode-ai/util/binary"
import { createSimpleContext } from "@opencode-ai/ui/context"
import { useGlobalSync } from "./global-sync"
@@ -11,45 +11,6 @@ export const { use: useSync, provider: SyncProvider } = createSimpleContext({
const globalSync = useGlobalSync()
const sdk = useSDK()
const [store, setStore] = globalSync.child(sdk.directory)
-
- const load = {
- project: () => sdk.client.project.current().then((x) => setStore("project", x.data!.id)),
- provider: () => sdk.client.provider.list().then((x) => setStore("provider", x.data!)),
- path: () => sdk.client.path.get().then((x) => setStore("path", x.data!)),
- agent: () => sdk.client.app.agents().then((x) => setStore("agent", x.data ?? [])),
- session: () =>
- sdk.client.session.list().then((x) => {
- const sessions = (x.data ?? [])
- .slice()
- .sort((a, b) => a.id.localeCompare(b.id))
- .slice(0, store.limit)
- setStore("session", sessions)
- }),
- status: () => sdk.client.session.status().then((x) => setStore("session_status", x.data!)),
- config: () => sdk.client.config.get().then((x) => setStore("config", x.data!)),
- changes: () => sdk.client.file.status().then((x) => setStore("changes", x.data!)),
- node: () => sdk.client.file.list({ path: "/" }).then((x) => setStore("node", x.data!)),
- }
-
- async function bootstrap() {
- return Promise.all(Object.values(load).map((p) => p())).then(() => setStore("ready", true))
- }
-
- onMount(() => {
- bootstrap()
- })
-
- sdk.event.listen((e) => {
- const event = e.details
- console.log(event)
- switch (event.type) {
- case "server.instance.disposed": {
- bootstrap()
- break
- }
- }
- })
-
const absolute = (path: string) => (store.path.directory + "/" + path).replace("//", "/")
return {
@@ -95,11 +56,16 @@ export const { use: useSync, provider: SyncProvider } = createSimpleContext({
},
fetch: async (count = 10) => {
setStore("limit", (x) => x + count)
- await load.session()
+ await sdk.client.session.list().then((x) => {
+ const sessions = (x.data ?? [])
+ .slice()
+ .sort((a, b) => a.id.localeCompare(b.id))
+ .slice(0, store.limit)
+ setStore("session", sessions)
+ })
},
more: createMemo(() => store.session.length >= store.limit),
},
- bootstrap,
absolute,
get directory() {
return store.path.directory