Ver código fonte

ignore: fix new session message loading with retry logic to handle server processing delays

Dax Raad 4 meses atrás
pai
commit
74048ece2d
1 arquivos alterados com 8 adições e 1 exclusões
  1. 8 1
      packages/desktop/src/context/sync.tsx

+ 8 - 1
packages/desktop/src/context/sync.tsx

@@ -134,11 +134,18 @@ export const { use: useSync, provider: SyncProvider } = createSimpleContext({
           if (match.found) return store.session[match.index]
           return undefined
         },
-        async sync(sessionID: string) {
+        async sync(sessionID: string, isRetry = false) {
           const [session, messages] = await Promise.all([
             sdk.client.session.get({ path: { id: sessionID } }),
             sdk.client.session.messages({ path: { id: sessionID } }),
           ])
+
+          // If no messages and this might be a new session, retry after a delay
+          if (!isRetry && messages.data!.length === 0) {
+            setTimeout(() => this.sync(sessionID, true), 500)
+            return
+          }
+
           setStore(
             produce((draft) => {
               const match = Binary.search(draft.session, sessionID, (s) => s.id)