From e2dc5a8faf9d4362a99c5cd74a676e3b5436ceb4 Mon Sep 17 00:00:00 2001 From: Frank Date: Fri, 23 May 2025 16:45:40 -0400 Subject: [PATCH] Share: sync --- app/packages/web/src/app.tsx | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/app/packages/web/src/app.tsx b/app/packages/web/src/app.tsx index 01628b10..371f37c8 100644 --- a/app/packages/web/src/app.tsx +++ b/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) }