fix: gallery viewer sliding window offload assets (#17016)

* fix: gallery viewer sliding window offload assets

* fix: update bottom sliding window

* do not use negative

* Calculate offset before gallery

---------

Co-authored-by: Min Idzelis <min123@gmail.com>
This commit is contained in:
Alex 2025-03-20 22:30:01 -05:00 committed by GitHub
parent 21954939cf
commit dbc279f843
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 60 additions and 40 deletions

View file

@ -35,6 +35,8 @@
onPrevious?: (() => Promise<AssetResponseDto | undefined>) | undefined;
onNext?: (() => Promise<AssetResponseDto | undefined>) | undefined;
onRandom?: (() => Promise<AssetResponseDto | undefined>) | undefined;
pageHeaderOffset?: number;
slidingWindowOffset?: number;
}
let {
@ -49,6 +51,8 @@
onPrevious = undefined,
onNext = undefined,
onRandom = undefined,
slidingWindowOffset = 0,
pageHeaderOffset = 0,
}: Props = $props();
let { isViewing: isViewerOpen, asset: viewingAsset, setAsset } = assetViewingStore;
@ -86,7 +90,7 @@
height: geometry.getHeight(i),
};
// 54 is the content height of the asset-selection-app-bar
const layoutTopWithOffset = layout.top + 54;
const layoutTopWithOffset = layout.top + pageHeaderOffset;
const layoutBottom = layoutTopWithOffset + layout.height;
const display = layoutTopWithOffset < slidingWindow.bottom && layoutBottom > slidingWindow.top;
@ -109,7 +113,7 @@
const updateSlidingWindow = () => {
const v = $state.snapshot(viewport);
const top = document.scrollingElement?.scrollTop || 0;
const top = (document.scrollingElement?.scrollTop || 0) - slidingWindowOffset;
const bottom = top + v.height;
const w = {
top,