From 8ab67882f1e7fa2dccefda5f64da3e2292337fef Mon Sep 17 00:00:00 2001 From: Chad Curtis Date: Sun, 22 Feb 2026 17:46:15 -0600 Subject: [PATCH] Fix duplicate replies in post details and remove sticky header --- src/hooks/useReplies.ts | 10 +++++++++- src/pages/PostDetailPage.tsx | 2 +- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/hooks/useReplies.ts b/src/hooks/useReplies.ts index 788bb518..c2cc9dc1 100644 --- a/src/hooks/useReplies.ts +++ b/src/hooks/useReplies.ts @@ -16,8 +16,16 @@ export function useReplies(eventId: string | undefined) { { signal: AbortSignal.any([signal, AbortSignal.timeout(5000)]) }, ); + // Deduplicate events (multiple relays may return the same event) + const seen = new Set(); + const unique = events.filter((e) => { + if (seen.has(e.id)) return false; + seen.add(e.id); + return true; + }); + // Sort oldest first for threaded conversation view - return events.sort((a, b) => a.created_at - b.created_at); + return unique.sort((a, b) => a.created_at - b.created_at); }, enabled: !!eventId, staleTime: 30 * 1000, diff --git a/src/pages/PostDetailPage.tsx b/src/pages/PostDetailPage.tsx index 4d3db5cc..9c2c3a41 100644 --- a/src/pages/PostDetailPage.tsx +++ b/src/pages/PostDetailPage.tsx @@ -326,7 +326,7 @@ function PostDetailShell({ children }: { children: React.ReactNode }) { return (
{/* Header — matches Ditto: ← Post Details */} -
+