diff options
| author | Adam <[email protected]> | 2025-12-30 07:24:35 -0600 |
|---|---|---|
| committer | Adam <[email protected]> | 2025-12-30 07:24:40 -0600 |
| commit | e0e07c5d48ef0671f63ca8bd9119169ced493fac (patch) | |
| tree | 9377eab8b3cc5d3c2976ccae2d32e22db46ce816 /packages/app/src/context/layout.tsx | |
| parent | 281f9e623673e6bbfd9a5f9a8f9aae496abc99f2 (diff) | |
| download | opencode-e0e07c5d48ef0671f63ca8bd9119169ced493fac.tar.gz opencode-e0e07c5d48ef0671f63ca8bd9119169ced493fac.zip | |
feat(app): change server
Diffstat (limited to 'packages/app/src/context/layout.tsx')
| -rw-r--r-- | packages/app/src/context/layout.tsx | 30 |
1 files changed, 11 insertions, 19 deletions
diff --git a/packages/app/src/context/layout.tsx b/packages/app/src/context/layout.tsx index 4ccab98e3..e57f69f8f 100644 --- a/packages/app/src/context/layout.tsx +++ b/packages/app/src/context/layout.tsx @@ -3,6 +3,7 @@ import { batch, createMemo, onMount } from "solid-js" import { createSimpleContext } from "@opencode-ai/ui/context" import { useGlobalSync } from "./global-sync" import { useGlobalSDK } from "./global-sdk" +import { useServer } from "./server" import { Project } from "@opencode-ai/sdk/v2" import { persisted } from "@/utils/persist" @@ -34,10 +35,10 @@ export const { use: useLayout, provider: LayoutProvider } = createSimpleContext( init: () => { const globalSdk = useGlobalSDK() const globalSync = useGlobalSync() + const server = useServer() const [store, setStore, _, ready] = persisted( - "layout.v3", + "layout.v4", createStore({ - projects: [] as { worktree: string; expanded: boolean }[], sidebar: { opened: false, width: 280, @@ -86,12 +87,12 @@ export const { use: useLayout, provider: LayoutProvider } = createSimpleContext( return project } - const enriched = createMemo(() => store.projects.flatMap(enrich)) + const enriched = createMemo(() => server.projects.list().flatMap(enrich)) const list = createMemo(() => enriched().flatMap(colorize)) onMount(() => { Promise.all( - store.projects.map((project) => { + server.projects.list().map((project) => { return globalSync.project.loadSessions(project.worktree) }), ) @@ -102,32 +103,23 @@ export const { use: useLayout, provider: LayoutProvider } = createSimpleContext( projects: { list, open(directory: string) { - if (store.projects.find((x) => x.worktree === directory)) { + if (server.projects.list().find((x) => x.worktree === directory)) { return } globalSync.project.loadSessions(directory) - setStore("projects", (x) => [{ worktree: directory, expanded: true }, ...x]) + server.projects.open(directory) }, close(directory: string) { - setStore("projects", (x) => x.filter((x) => x.worktree !== directory)) + server.projects.close(directory) }, expand(directory: string) { - const index = store.projects.findIndex((x) => x.worktree === directory) - if (index !== -1) setStore("projects", index, "expanded", true) + server.projects.expand(directory) }, collapse(directory: string) { - const index = store.projects.findIndex((x) => x.worktree === directory) - if (index !== -1) setStore("projects", index, "expanded", false) + server.projects.collapse(directory) }, move(directory: string, toIndex: number) { - setStore("projects", (projects) => { - const fromIndex = projects.findIndex((x) => x.worktree === directory) - if (fromIndex === -1 || fromIndex === toIndex) return projects - const result = [...projects] - const [item] = result.splice(fromIndex, 1) - result.splice(toIndex, 0, item) - return result - }) + server.projects.move(directory, toIndex) }, }, sidebar: { |
