diff options
| author | Adam <[email protected]> | 2025-12-09 11:52:39 -0600 |
|---|---|---|
| committer | Adam <[email protected]> | 2025-12-09 11:52:43 -0600 |
| commit | 1bc1e56da379fdd9040dc40caac1a57ffe8d1197 (patch) | |
| tree | a29b8ae17b7db70cb7cf22f2378b8f6b0295090d /packages/desktop/src/context | |
| parent | 0d0c20e673d90bf5f5bb005fb6b91fd4850726a3 (diff) | |
| download | opencode-1bc1e56da379fdd9040dc40caac1a57ffe8d1197.tar.gz opencode-1bc1e56da379fdd9040dc40caac1a57ffe8d1197.zip | |
wip(desktop): progress
Diffstat (limited to 'packages/desktop/src/context')
| -rw-r--r-- | packages/desktop/src/context/layout.tsx | 10 | ||||
| -rw-r--r-- | packages/desktop/src/context/local.tsx | 4 | ||||
| -rw-r--r-- | packages/desktop/src/context/session.tsx | 13 |
3 files changed, 14 insertions, 13 deletions
diff --git a/packages/desktop/src/context/layout.tsx b/packages/desktop/src/context/layout.tsx index 5ef41c1f4..58d947af4 100644 --- a/packages/desktop/src/context/layout.tsx +++ b/packages/desktop/src/context/layout.tsx @@ -66,6 +66,16 @@ export const { use: useLayout, provider: LayoutProvider } = createSimpleContext( collapse(directory: string) { setStore("projects", (x) => x.map((x) => (x.directory === directory ? { ...x, expanded: false } : x))) }, + move(directory: string, toIndex: number) { + setStore("projects", (projects) => { + const fromIndex = projects.findIndex((x) => x.directory === directory) + if (fromIndex === -1 || fromIndex === toIndex) return projects + const result = [...projects] + const [item] = result.splice(fromIndex, 1) + result.splice(toIndex, 0, item) + return result + }) + }, }, sidebar: { opened: createMemo(() => store.sidebar.opened), diff --git a/packages/desktop/src/context/local.tsx b/packages/desktop/src/context/local.tsx index 0d8303b45..8223a36b9 100644 --- a/packages/desktop/src/context/local.tsx +++ b/packages/desktop/src/context/local.tsx @@ -257,7 +257,7 @@ export const { use: useLocal, provider: LocalProvider } = createSimpleContext({ const load = async (path: string) => { const relativePath = relative(path) - sdk.client.file.read({ path: relativePath }).then((x) => { + await sdk.client.file.read({ path: relativePath }).then((x) => { setStore( "node", relativePath, @@ -335,7 +335,7 @@ export const { use: useLocal, provider: LocalProvider } = createSimpleContext({ return { node: async (path: string) => { - if (!store.node[path] || store.node[path].loaded === false) { + if (!store.node[path] || !store.node[path].loaded) { await init(path) } return store.node[path] diff --git a/packages/desktop/src/context/session.tsx b/packages/desktop/src/context/session.tsx index 5335422f7..2a0391d6b 100644 --- a/packages/desktop/src/context/session.tsx +++ b/packages/desktop/src/context/session.tsx @@ -1,9 +1,9 @@ import { createStore, produce } from "solid-js/store" import { createSimpleContext } from "@opencode-ai/ui/context" -import { batch, createEffect, createMemo, onMount } from "solid-js" +import { batch, createEffect, createMemo } from "solid-js" import { useSync } from "./sync" import { makePersisted } from "@solid-primitives/storage" -import { TextSelection, useLocal } from "./local" +import { TextSelection } from "./local" import { pipe, sumBy } from "remeda" import { AssistantMessage, UserMessage } from "@opencode-ai/sdk/v2" import { useParams } from "@solidjs/router" @@ -25,7 +25,6 @@ export const { use: useSession, provider: SessionProvider } = createSimpleContex const sdk = useSDK() const params = useParams() const sync = useSync() - const local = useLocal() const name = createMemo( () => `${base64Encode(sync.data.project.worktree)}/session${params.id ? "/" + params.id : ""}.v2`, ) @@ -56,14 +55,6 @@ export const { use: useSession, provider: SessionProvider } = createSimpleContex }, ) - onMount(() => { - store.tabs.all.forEach((tab) => { - if (tab.startsWith("file://")) { - local.file.open(tab.replace("file://", "")) - } - }) - }) - createEffect(() => { if (!params.id) return sync.session.sync(params.id) |
