From 795f94c3d8b783388fcb3d2f8499cf4d6f27cf73 Mon Sep 17 00:00:00 2001 From: Eric Bailey Date: Fri, 21 Jun 2024 16:27:27 -0500 Subject: [PATCH] Stop feed pagination after we get dupes back --- src/state/queries/feed.ts | 41 ++++++++++++++++++++++++++------------- 1 file changed, 27 insertions(+), 14 deletions(-) diff --git a/src/state/queries/feed.ts b/src/state/queries/feed.ts index dea6f5d774..65bb945e48 100644 --- a/src/state/queries/feed.ts +++ b/src/state/queries/feed.ts @@ -246,26 +246,39 @@ export function useGetPopularFeedsQuery(options?: GetPopularFeedsOptions) { ( data: InfiniteData, ) => { + const seen = new Set() const {savedFeeds, hasSession: hasSessionInner} = selectArgs return { ...data, pages: data.pages.map(page => { + let __tempHasDuplicatesStopPagination__ = false + + const feeds = page.feeds.filter(feed => { + if (seen.has(feed.uri)) { + __tempHasDuplicatesStopPagination__ = true + return false + } + seen.add(feed.uri) + if ( + !hasSessionInner && + KNOWN_AUTHED_ONLY_FEEDS.includes(feed.uri) + ) { + return false + } + const alreadySaved = Boolean( + savedFeeds?.find(f => { + return f.value === feed.uri + }), + ) + return !alreadySaved + }) + return { ...page, - feeds: page.feeds.filter(feed => { - if ( - !hasSessionInner && - KNOWN_AUTHED_ONLY_FEEDS.includes(feed.uri) - ) { - return false - } - const alreadySaved = Boolean( - savedFeeds?.find(f => { - return f.value === feed.uri - }), - ) - return !alreadySaved - }), + cursor: __tempHasDuplicatesStopPagination__ + ? undefined + : page.cursor, + feeds, } }), }