From 4d980bf91c98e6eae68bd067cb1984bc99b50d8c Mon Sep 17 00:00:00 2001 From: Gigi Date: Thu, 23 Oct 2025 20:38:06 +0200 Subject: [PATCH] fix: deduplicate bookmarks in Me component - Add dedupeBookmarksById to flatten operation in Me.tsx - Same article can appear in multiple bookmark lists/sets - Use coordinate-based deduplication (kind:pubkey:identifier) for articles - Prevents duplicate display when article is in multiple bookmark sources --- src/components/Me.tsx | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/components/Me.tsx b/src/components/Me.tsx index ef254667..b03a2fa2 100644 --- a/src/components/Me.tsx +++ b/src/components/Me.tsx @@ -25,6 +25,7 @@ import { faBooks } from '../icons/customIcons' import { usePullToRefresh } from 'use-pull-to-refresh' import RefreshIndicator from './RefreshIndicator' import { groupIndividualBookmarks, hasContent, hasCreationDate, sortIndividualBookmarks } from '../utils/bookmarkUtils' +import { dedupeBookmarksById } from '../services/bookmarkHelpers' import BookmarkFilters, { BookmarkFilterType } from './BookmarkFilters' import { filterBookmarksByType } from '../utils/bookmarkTypeClassifier' import ReadingProgressFilters, { ReadingProgressFilterType } from './ReadingProgressFilters' @@ -487,8 +488,10 @@ const Me: React.FC = ({ return undefined } - // Merge and flatten all individual bookmarks - const allIndividualBookmarks = bookmarks.flatMap(b => b.individualBookmarks || []) + // Merge and flatten all individual bookmarks with deduplication + const allIndividualBookmarks = dedupeBookmarksById( + bookmarks.flatMap(b => b.individualBookmarks || []) + ) .filter(hasContent) .filter(b => !settings?.hideBookmarksWithoutCreationDate || hasCreationDate(b))