diff options
| author | Adam <[email protected]> | 2025-12-29 10:42:08 -0600 |
|---|---|---|
| committer | Adam <[email protected]> | 2025-12-29 10:42:48 -0600 |
| commit | 5f074edc3a2ca80db4fd51360304bc070279a218 (patch) | |
| tree | 135342ae17241e33bc4d40e625b876fb8d3ad54c /packages/app/src | |
| parent | 56b5cdf88316af25a58215de899f90eea23db9b9 (diff) | |
| download | opencode-5f074edc3a2ca80db4fd51360304bc070279a218.tar.gz opencode-5f074edc3a2ca80db4fd51360304bc070279a218.zip | |
fix(desktop): performance/jankiness
Diffstat (limited to 'packages/app/src')
| -rw-r--r-- | packages/app/src/app.tsx | 2 | ||||
| -rw-r--r-- | packages/app/src/context/global-sync.tsx | 4 | ||||
| -rw-r--r-- | packages/app/src/context/sync.tsx | 4 |
3 files changed, 5 insertions, 5 deletions
diff --git a/packages/app/src/app.tsx b/packages/app/src/app.tsx index bf5ba9566..9e38d5e98 100644 --- a/packages/app/src/app.tsx +++ b/packages/app/src/app.tsx @@ -69,7 +69,7 @@ export function App() { <Route path="/session/:id?" component={(p) => ( - <Show when={p.params.id || true} keyed> + <Show when={p.params.id ?? "new"} keyed> <TerminalProvider> <PromptProvider> <Session /> diff --git a/packages/app/src/context/global-sync.tsx b/packages/app/src/context/global-sync.tsx index e1dcf15fc..a6851aecb 100644 --- a/packages/app/src/context/global-sync.tsx +++ b/packages/app/src/context/global-sync.tsx @@ -124,7 +124,7 @@ function createGlobalSync() { const updated = new Date(s.time.updated).getTime() return updated > fourHoursAgo }) - setStore("session", sessions) + setStore("session", reconcile(sessions, { key: "id" })) }) .catch((err) => { console.error("Failed to load sessions", err) @@ -263,7 +263,7 @@ function createGlobalSync() { setStore("session_diff", event.properties.sessionID, reconcile(event.properties.diff, { key: "file" })) break case "todo.updated": - setStore("todo", event.properties.sessionID, reconcile(event.properties.todos)) + setStore("todo", event.properties.sessionID, reconcile(event.properties.todos, { key: "id" })) break case "session.status": { setStore("session_status", event.properties.sessionID, reconcile(event.properties.status)) diff --git a/packages/app/src/context/sync.tsx b/packages/app/src/context/sync.tsx index dad035fb3..05156613a 100644 --- a/packages/app/src/context/sync.tsx +++ b/packages/app/src/context/sync.tsx @@ -81,7 +81,7 @@ export const { use: useSync, provider: SyncProvider } = createSimpleContext({ }), ) - setStore("todo", sessionID, reconcile(todo.data ?? [])) + setStore("todo", sessionID, reconcile(todo.data ?? [], { key: "id" })) setStore( "message", sessionID, @@ -115,7 +115,7 @@ export const { use: useSync, provider: SyncProvider } = createSimpleContext({ .slice() .sort((a, b) => a.id.localeCompare(b.id)) .slice(0, store.limit) - setStore("session", sessions) + setStore("session", reconcile(sessions, { key: "id" })) }) }, more: createMemo(() => store.session.length >= store.limit), |
