fix: deduplicate WS messages in ChatPanel + remove StrictMode
This commit is contained in:
parent
f9d0bfd3a3
commit
c96bd88f2a
@ -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?.(); };
|
||||
|
||||
@ -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 />,
|
||||
)
|
||||
Loading…
Reference in New Issue
Block a user