Browse Source

Share: sync

Frank 9 months ago
parent
commit
e2dc5a8faf
1 changed files with 15 additions and 2 deletions
  1. 15 2
      app/packages/web/src/app.tsx

+ 15 - 2
app/packages/web/src/app.tsx

@@ -30,7 +30,7 @@ export default function App() {
       setConnectionStatus("Error: API URL not found")
       return
     }
-
+    
     let reconnectTimer: number | undefined
     let socket: WebSocket | null = null
 
@@ -62,7 +62,20 @@ export default function App() {
         console.log("WebSocket message received")
         try {
           const data = JSON.parse(event.data) as Message
-          setMessages((prev) => [...prev, data])
+          setMessages((prev) => {
+            // Check if message with this key already exists
+            const existingIndex = prev.findIndex(msg => msg.key === data.key)
+            
+            if (existingIndex >= 0) {
+              // Update existing message
+              const updated = [...prev]
+              updated[existingIndex] = data
+              return updated
+            } else {
+              // Add new message
+              return [...prev, data]
+            }
+          })
         } catch (error) {
           console.error("Error parsing WebSocket message:", error)
         }