Filter out duplicate messages (#151)

This commit is contained in:
Matt Rubens 2025-06-28 00:50:07 -04:00 committed by GitHub
parent c6ec80d7a8
commit a2a9c31f95
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -32,13 +32,26 @@ const parseQuestionData = (text: string): QuestionData | null => {
};
export const Messages = ({ messages }: MessagesProps) => {
const conversation = useMemo(
() =>
messages
.filter(isVisible)
.map((message, index) => decorate({ message, index })),
[messages],
);
const conversation = useMemo(() => {
const visibleMessages = messages.filter(isVisible);
// Remove consecutive duplicates based on timestamp and text
const deduplicatedMessages = visibleMessages.filter((message, index) => {
if (index === 0) return true;
const prevMessage = visibleMessages[index - 1];
if (!prevMessage) return true; // Safety check, though this shouldn't happen
return !(
message.timestamp === prevMessage.timestamp &&
message.text === prevMessage.text
);
});
return deduplicatedMessages.map((message, index) =>
decorate({ message, index }),
);
}, [messages]);
return (
<div className="space-y-6">