fix: harden dashboard message state

This commit is contained in:
MythEclipse
2026-05-14 21:10:24 +07:00
parent cb2cfc76f2
commit a812182218
3 changed files with 11 additions and 11 deletions

View File

@@ -29,7 +29,15 @@ export default function App() {
const ws = connectDashboardSocket((event: DashboardEvent) => {
switch (event.type) {
case "message_created":
setMessages((prev) => [event.data, ...prev].slice(0, 200));
setMessages((prev) => {
const existing = prev.some((message) => message.id === event.data.id);
if (existing) {
return prev.map((message) =>
message.id === event.data.id ? event.data : message,
);
}
return [event.data, ...prev].slice(0, 200);
});
break;
case "message_analyzed":
setMessages((prev) =>