summaryrefslogtreecommitdiffhomepage
path: root/app/packages/web/src
diff options
context:
space:
mode:
authorFrank <[email protected]>2025-05-23 16:45:40 -0400
committerDax Raad <[email protected]>2025-05-26 12:40:17 -0400
commite2dc5a8faf9d4362a99c5cd74a676e3b5436ceb4 (patch)
treecc853ad5cf95b1930d0587d764cb2944f076a0a8 /app/packages/web/src
parent72d10a08237e83516c22e687f1b450c787be1946 (diff)
downloadopencode-e2dc5a8faf9d4362a99c5cd74a676e3b5436ceb4.tar.gz
opencode-e2dc5a8faf9d4362a99c5cd74a676e3b5436ceb4.zip
Share: sync
Diffstat (limited to 'app/packages/web/src')
-rw-r--r--app/packages/web/src/app.tsx17
1 files changed, 15 insertions, 2 deletions
diff --git a/app/packages/web/src/app.tsx b/app/packages/web/src/app.tsx
index 01628b10a..371f37c88 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)
}