diff options
Diffstat (limited to 'apps/web/app/reader/_components/entry-list.tsx')
| -rw-r--r-- | apps/web/app/reader/_components/entry-list.tsx | 27 |
1 files changed, 11 insertions, 16 deletions
diff --git a/apps/web/app/reader/_components/entry-list.tsx b/apps/web/app/reader/_components/entry-list.tsx index 7786e55..ee2dad2 100644 --- a/apps/web/app/reader/_components/entry-list.tsx +++ b/apps/web/app/reader/_components/entry-list.tsx @@ -20,12 +20,14 @@ function useEntryData( feedFilter: "all" | "saved", folderIdentifier?: string | null, feedIdentifier?: string | null, - customFeedIdentifier?: string | null + customFeedIdentifier?: string | null, + prioritiseUnread?: boolean ) { const timelineQuery = useTimeline( feedFilter === "all" && !customFeedIdentifier ? folderIdentifier : undefined, feedFilter === "all" && !customFeedIdentifier ? feedIdentifier : undefined, - false + false, + prioritiseUnread ) const savedQuery = useSavedEntries() const customFeedQuery = useCustomFeedTimeline( @@ -49,8 +51,12 @@ export function EntryList({ feedIdentifier, customFeedIdentifier, }: EntryListProperties) { + const prioritiseUnreadEntries = useUserInterfaceStore( + (state) => state.prioritiseUnreadEntries + ) + const { data, fetchNextPage, hasNextPage, isFetchingNextPage, isLoading } = - useEntryData(feedFilter, folderIdentifier, feedIdentifier, customFeedIdentifier) + useEntryData(feedFilter, folderIdentifier, feedIdentifier, customFeedIdentifier, prioritiseUnreadEntries) const entryListViewMode = useUserInterfaceStore( (state) => state.entryListViewMode @@ -72,20 +78,9 @@ export function EntryList({ (state) => state.setNavigableEntryIdentifiers ) - const prioritiseUnreadEntries = useUserInterfaceStore( - (state) => state.prioritiseUnreadEntries - ) - const allEntries = useMemo(() => { - const flatEntries = data?.pages.flatMap((page) => page) ?? [] - - if (!prioritiseUnreadEntries) return flatEntries - - const unreadEntries = flatEntries.filter((entry) => !entry.isRead) - const readEntries = flatEntries.filter((entry) => entry.isRead) - - return [...unreadEntries, ...readEntries] - }, [data, prioritiseUnreadEntries]) + return data?.pages.flatMap((page) => page) ?? [] + }, [data]) const scrollContainerReference = useRef<HTMLDivElement>(null) const firstEntryIdentifier = allEntries[0]?.entryIdentifier |