diff options
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) |
