fix: deduplicate WS messages in ChatPanel + remove StrictMode

This commit is contained in:
Markov 2026-02-24 10:15:12 +01:00
parent f9d0bfd3a3
commit c96bd88f2a
2 changed files with 8 additions and 5 deletions

View File

@ -31,7 +31,11 @@ export default function ChatPanel({ chatId, fullscreen = false }: Props) {
useEffect(() => {
const unsub = wsClient.on("message.new", (data: any) => {
if (data.chat_id === chatId) {
setMessages((prev) => [...prev, data as Message]);
setMessages((prev) => {
// Dedup by message id
if (prev.some((m) => m.id === data.id)) return prev;
return [...prev, data as Message];
});
}
});
return () => { unsub?.(); };

View File

@ -1,10 +1,9 @@
import { StrictMode } from 'react'
// StrictMode removed — causes double WS subscriptions (double useEffect)
// import { StrictMode } from 'react'
import { createRoot } from 'react-dom/client'
import './index.css'
import App from './App.tsx'
createRoot(document.getElementById('root')!).render(
<StrictMode>
<App />
</StrictMode>,
<App />,
)