fix(ui): in-page browse virtual lists and cover load priority (#783)

* fix(ui): in-page browse virtual lists and cover load priority

Align virtualizer scrollMargin with the in-page scroll viewport so
artist/album rows do not vanish on deep scroll after #731. Resolve
CachedImage IntersectionObserver root to the nearest scrolling pane so
network fetch slots favor visible covers; throttle Artists infinite scroll
to one page per visibleCount update.

* chore(release): CHANGELOG and credits for PR #783
This commit is contained in:
cucadmuh
2026-05-18 21:30:36 +03:00
committed by GitHub
parent 70c2fdfbf9
commit f6fe1484a9
10 changed files with 112 additions and 20 deletions
+2 -2
View File
@@ -126,7 +126,7 @@ export default function Artists() {
const artistGridScrollMargin = useVirtualizerScrollMargin(
artistGridMeasureRef,
() => document.getElementById(APP_MAIN_SCROLL_VIEWPORT_ID),
getInpageScrollElement,
{
active: !perfFlags.disableMainstageVirtualLists && viewMode === 'grid',
deps: [artistVirtualRowCount, artistGridCols],
@@ -159,7 +159,7 @@ export default function Artists() {
const artistListWrapRef = useRef<HTMLDivElement>(null);
const artistListScrollMargin = useVirtualizerScrollMargin(
artistListWrapRef,
() => document.getElementById(APP_MAIN_SCROLL_VIEWPORT_ID),
getInpageScrollElement,
{
active: !perfFlags.disableMainstageVirtualLists && viewMode === 'list',
deps: [artistListFlatRows.length],
+1 -1
View File
@@ -215,7 +215,7 @@ export default function Composers() {
const composerListWrapRef = useRef<HTMLDivElement>(null);
const composerListScrollMargin = useVirtualizerScrollMargin(
composerListWrapRef,
() => document.getElementById(APP_MAIN_SCROLL_VIEWPORT_ID),
getInpageScrollElement,
{
active: !perfFlags.disableMainstageVirtualLists && viewMode === 'list',
deps: [composerListFlatRows.length],