mirror of
https://github.com/jkingsman/Remote-Terminal-for-MeshCore.git
synced 2026-07-21 09:02:57 +02:00
Fix double message render glitch
This commit is contained in:
@@ -381,10 +381,15 @@ export function useConversationMessages(
|
||||
}
|
||||
seenMessageContent.current.add(contentKey);
|
||||
|
||||
// Limit set size to prevent memory issues (keep last 500)
|
||||
// Limit set size to prevent memory issues — rebuild from current messages
|
||||
// so visible messages always remain in the dedup set (insertion-order slicing
|
||||
// could evict keys for still-displayed messages, allowing echo duplicates).
|
||||
if (seenMessageContent.current.size > 1000) {
|
||||
const entries = Array.from(seenMessageContent.current);
|
||||
seenMessageContent.current = new Set(entries.slice(-500));
|
||||
seenMessageContent.current = new Set(
|
||||
messagesRef.current.map((m) => getMessageContentKey(m))
|
||||
);
|
||||
// Re-add the just-inserted key in case it's a new message not yet in state
|
||||
seenMessageContent.current.add(contentKey);
|
||||
}
|
||||
|
||||
setMessages((prev) => {
|
||||
|
||||
Reference in New Issue
Block a user