Frontend optimization part 2

This commit is contained in:
Jack Kingsman
2026-03-16 17:12:01 -07:00
parent a5d9632a67
commit 0e4828bf72
19 changed files with 261 additions and 219 deletions
+10
View File
@@ -0,0 +1,10 @@
import type { Message } from '../types';
// Content identity matches the frontend's message-level dedup contract.
export function getMessageContentKey(msg: Message): string {
// When sender_timestamp exists, dedup by content (catches radio-path duplicates with different IDs).
// When null, include msg.id so each message gets a unique key — avoids silently dropping
// different messages that share the same text and received_at second.
const ts = msg.sender_timestamp ?? `r${msg.received_at}-${msg.id}`;
return `${msg.type}-${msg.conversation_key}-${msg.text}-${ts}`;
}