diff options
| author | Adam <[email protected]> | 2025-12-31 12:00:39 -0600 |
|---|---|---|
| committer | Adam <[email protected]> | 2025-12-31 13:12:30 -0600 |
| commit | 65bc72098b737bee12f388215913808fa1629a4d (patch) | |
| tree | 5e392743dd2e4a5f7874d05bb99c20fe6f690bb2 /packages/app/src/context/sync.tsx | |
| parent | b5546dce802a6befcb7e8b03577543399cef795b (diff) | |
| download | opencode-65bc72098b737bee12f388215913808fa1629a4d.tar.gz opencode-65bc72098b737bee12f388215913808fa1629a4d.zip | |
fix(desktop): more defensive access
Diffstat (limited to 'packages/app/src/context/sync.tsx')
| -rw-r--r-- | packages/app/src/context/sync.tsx | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/packages/app/src/context/sync.tsx b/packages/app/src/context/sync.tsx index 5291f1099..909af2447 100644 --- a/packages/app/src/context/sync.tsx +++ b/packages/app/src/context/sync.tsx @@ -56,7 +56,10 @@ export const { use: useSync, provider: SyncProvider } = createSimpleContext({ const result = Binary.search(messages, input.messageID, (m) => m.id) messages.splice(result.index, 0, message) } - draft.part[input.messageID] = input.parts.slice().sort((a, b) => a.id.localeCompare(b.id)) + draft.part[input.messageID] = input.parts + .filter((p) => !!p?.id) + .slice() + .sort((a, b) => a.id.localeCompare(b.id)) }), ) }, @@ -88,6 +91,7 @@ export const { use: useSync, provider: SyncProvider } = createSimpleContext({ reconcile( (messages.data ?? []) .map((x) => x.info) + .filter((m) => !!m?.id) .slice() .sort((a, b) => a.id.localeCompare(b.id)), { key: "id" }, @@ -95,11 +99,15 @@ export const { use: useSync, provider: SyncProvider } = createSimpleContext({ ) for (const message of messages.data ?? []) { + if (!message?.info?.id) continue setStore( "part", message.info.id, reconcile( - message.parts.slice().sort((a, b) => a.id.localeCompare(b.id)), + message.parts + .filter((p) => !!p?.id) + .slice() + .sort((a, b) => a.id.localeCompare(b.id)), { key: "id" }, ), ) @@ -112,6 +120,7 @@ export const { use: useSync, provider: SyncProvider } = createSimpleContext({ setStore("limit", (x) => x + count) await sdk.client.session.list().then((x) => { const sessions = (x.data ?? []) + .filter((s) => !!s?.id) .slice() .sort((a, b) => a.id.localeCompare(b.id)) .slice(0, store.limit) |
