diff options
Diffstat (limited to 'apps/web/app/reader/_components/entry-list.tsx')
| -rw-r--r-- | apps/web/app/reader/_components/entry-list.tsx | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/apps/web/app/reader/_components/entry-list.tsx b/apps/web/app/reader/_components/entry-list.tsx index acc0990..65e35f7 100644 --- a/apps/web/app/reader/_components/entry-list.tsx +++ b/apps/web/app/reader/_components/entry-list.tsx @@ -1,12 +1,13 @@ "use client" -import { useRef, useEffect } from "react" +import { useRef, useEffect, useMemo } from "react" import { useVirtualizer } from "@tanstack/react-virtual" import { useTimeline } from "@/lib/queries/use-timeline" import { useSavedEntries } from "@/lib/queries/use-saved-entries" import { useCustomFeedTimeline } from "@/lib/queries/use-custom-feed-timeline" import { useUserInterfaceStore } from "@/lib/stores/user-interface-store" import { EntryListItem } from "./entry-list-item" +import { usePrefetchEntryDetails } from "@/lib/hooks/use-prefetch-entry-details" interface EntryListProperties { feedFilter: "all" | "saved" @@ -77,11 +78,15 @@ export function EntryList({ const firstEntryIdentifier = allEntries[0]?.entryIdentifier const lastEntryIdentifier = allEntries[allEntries.length - 1]?.entryIdentifier + const prefetchIdentifiers = useMemo( + () => allEntries.map((entry) => entry.entryIdentifier), + [firstEntryIdentifier, lastEntryIdentifier, allEntries.length] + ) + usePrefetchEntryDetails(prefetchIdentifiers) + useEffect(() => { - setNavigableEntryIdentifiers( - allEntries.map((entry) => entry.entryIdentifier) - ) - }, [firstEntryIdentifier, lastEntryIdentifier, allEntries.length, setNavigableEntryIdentifiers]) + setNavigableEntryIdentifiers(prefetchIdentifiers) + }, [prefetchIdentifiers, setNavigableEntryIdentifiers]) function getEstimatedItemSize() { switch (entryListViewMode) { |