mirror of
https://github.com/immich-app/immich
synced 2025-11-07 17:27:20 +00:00
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:
parent
21954939cf
commit
dbc279f843
4 changed files with 60 additions and 40 deletions
|
|
@ -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,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue