diff --git a/src/renderer/components/item-list/item-grid-list/item-grid-list.tsx b/src/renderer/components/item-list/item-grid-list/item-grid-list.tsx index cd37b53ec..f6df65b57 100644 --- a/src/renderer/components/item-list/item-grid-list/item-grid-list.tsx +++ b/src/renderer/components/item-list/item-grid-list/item-grid-list.tsx @@ -8,6 +8,7 @@ import React, { CSSProperties, memo, ReactNode, + Ref, RefObject, useCallback, useEffect, @@ -150,10 +151,21 @@ const VirtualizedGridList = React.memo( return null; } + const calculateInitialScrollOffset = (): number => { + if (!initialTop) return 0; + + if (initialTop.type === 'offset') { + return initialTop.to; + } + + const rowIndex = Math.floor(initialTop.to / (tableMeta?.columnCount || 1)); + return rowIndex * (tableMeta?.itemHeight || 0); + }; + return ( string) | string; - initialTop?: number; + initialTop?: { + to: number; + type: 'index' | 'offset'; + }; itemsPerRow?: number; itemType: LibraryItem; onRangeChanged?: (range: { startIndex: number; stopIndex: number }) => void; onScroll?: (offset: number, direction: 'down' | 'up') => void; onScrollEnd?: (offset: number, direction: 'down' | 'up') => void; - ref?: RefObject; + ref?: Ref; } export const ItemGridList = ({ @@ -503,7 +518,7 @@ export const ItemGridList = ({ internalState.extractRowId(rangeItem) ) { rangeItems.push( - rangeItem as ItemListStateItemWithRequiredProperties, + rangeItem as unknown as ItemListStateItemWithRequiredProperties, ); } } diff --git a/src/renderer/features/albums/components/album-list-infinite-grid.tsx b/src/renderer/features/albums/components/album-list-infinite-grid.tsx index d7e26ee76..4a63fc015 100644 --- a/src/renderer/features/albums/components/album-list-infinite-grid.tsx +++ b/src/renderer/features/albums/components/album-list-infinite-grid.tsx @@ -56,7 +56,10 @@ export const AlbumListInfiniteGrid = forwardRef (