summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorAdam <[email protected]>2025-11-18 13:45:23 -0600
committerAdam <[email protected]>2025-11-18 13:45:27 -0600
commit3a9c2152f773224ce6caf1168063dd26d1e46300 (patch)
tree16a3ec5ec3050c7b66ec4f92868f06665dde756d
parent7283bfa480b163da7ea66250f4782747293afdfd (diff)
downloadopencode-3a9c2152f773224ce6caf1168063dd26d1e46300.tar.gz
opencode-3a9c2152f773224ce6caf1168063dd26d1e46300.zip
fix(desktop): reactivity issue on route change
-rw-r--r--packages/desktop/src/context/session.tsx2
-rw-r--r--packages/desktop/src/index.tsx12
-rw-r--r--packages/desktop/src/pages/directory-layout.tsx2
-rw-r--r--packages/desktop/src/pages/layout.tsx2
4 files changed, 10 insertions, 8 deletions
diff --git a/packages/desktop/src/context/session.tsx b/packages/desktop/src/context/session.tsx
index 64820b6ae..81b9b2d94 100644
--- a/packages/desktop/src/context/session.tsx
+++ b/packages/desktop/src/context/session.tsx
@@ -15,7 +15,7 @@ export const { use: useSession, provider: SessionProvider } = createSimpleContex
const params = useParams()
const sync = useSync()
const name = createMemo(
- () => `${base64Encode(sync.data.project.worktree)}/session${params.id ? "/" + params.id : ""}`,
+ () => `___${base64Encode(sync.data.project.worktree)}/session${params.id ? "/" + params.id : ""}`,
)
const [store, setStore] = makePersisted(
diff --git a/packages/desktop/src/index.tsx b/packages/desktop/src/index.tsx
index 64fab09ec..f35600895 100644
--- a/packages/desktop/src/index.tsx
+++ b/packages/desktop/src/index.tsx
@@ -12,7 +12,7 @@ import { LayoutProvider } from "./context/layout"
import { GlobalSDKProvider } from "./context/global-sdk"
import { SessionProvider } from "./context/session"
import { base64Encode } from "./utils"
-import { createMemo } from "solid-js"
+import { createMemo, Show } from "solid-js"
const host = import.meta.env.VITE_OPENCODE_SERVER_HOST ?? "127.0.0.1"
const port = import.meta.env.VITE_OPENCODE_SERVER_PORT ?? "4096"
@@ -51,10 +51,12 @@ render(
<Route path="/" component={() => <Navigate href="session" />} />
<Route
path="/session/:id?"
- component={() => (
- <SessionProvider>
- <Session />
- </SessionProvider>
+ component={(p) => (
+ <Show when={p.params.id || true} keyed>
+ <SessionProvider>
+ <Session />
+ </SessionProvider>
+ </Show>
)}
/>
</Route>
diff --git a/packages/desktop/src/pages/directory-layout.tsx b/packages/desktop/src/pages/directory-layout.tsx
index fff75d1af..6bd18ec9f 100644
--- a/packages/desktop/src/pages/directory-layout.tsx
+++ b/packages/desktop/src/pages/directory-layout.tsx
@@ -1,4 +1,4 @@
-import { createMemo, Show, type ParentProps } from "solid-js"
+import { createMemo, type ParentProps } from "solid-js"
import { useParams } from "@solidjs/router"
import { SDKProvider } from "@/context/sdk"
import { SyncProvider } from "@/context/sync"
diff --git a/packages/desktop/src/pages/layout.tsx b/packages/desktop/src/pages/layout.tsx
index 33cf7b66f..d882f7905 100644
--- a/packages/desktop/src/pages/layout.tsx
+++ b/packages/desktop/src/pages/layout.tsx
@@ -122,7 +122,7 @@ export default function Layout(props: ParentProps) {
?.replace(" hr.", "h")}
</span>
</div>
- <div class="hidden flex justify-between items-center self-stretch">
+ <div class="hidden _flex justify-between items-center self-stretch">
<span class="text-12-regular text-text-weak">{`${session.summary?.files || "No"} file${session.summary?.files !== 1 ? "s" : ""} changed`}</span>
<Show when={session.summary}>
{(summary) => <DiffChanges changes={summary()} />}