diff --git a/web/src/pages/HomePage.tsx b/web/src/pages/HomePage.tsx index 6840e42..f8f6561 100644 --- a/web/src/pages/HomePage.tsx +++ b/web/src/pages/HomePage.tsx @@ -151,7 +151,13 @@ export function HomePage() { .filter((l) => l.carousel_enabled === true) .map((l) => l.id) const topRowLibIds = sortedLibraries.slice(0, 3).map((l) => l.id) - const initialTargets = Array.from(new Set([...carouselLibIds, ...topRowLibIds])) + // 入口网格仍然是一次展示 20 个库;没有自定义封面的库必须在首屏 + // 立即拉预览,否则会先出现占位图标再补图,体感反而更慢。 + const topGridLibIds = sortedLibraries + .slice(0, 20) + .filter((l) => !l.cover_url) + .map((l) => l.id) + const initialTargets = Array.from(new Set([...carouselLibIds, ...topRowLibIds, ...topGridLibIds])) void fetchPreviews(initialTargets, 10) }, [sortedLibraries, fetchPreviews]) diff --git a/web/src/pages/HomePageSections.tsx b/web/src/pages/HomePageSections.tsx index d91ceaa..df51cdb 100644 --- a/web/src/pages/HomePageSections.tsx +++ b/web/src/pages/HomePageSections.tsx @@ -482,7 +482,11 @@ function HomeLibraryCard({ artwork.map(({ src, version }, index) => ( { + const ids = pagedPreviews.filter((preview) => !preview.library.cover_url).map((preview) => preview.library.id) + if (ids.length > 0) { + onNeedPreviews?.(ids) + } + }, [pagedPreviews, onNeedPreviews]) + return ( <> @@ -342,7 +350,11 @@ function LibraryEntryCard({ artwork.map(({ src, version }, index) => (