Skip to content

Commit af37542

Browse files
authored
refactor: move the computation of last right and left indexes to offset function (#157)
1 parent 5c4913e commit af37542

2 files changed

Lines changed: 5 additions & 20 deletions

File tree

packages/lib/src/spatial-navigation/components/virtualizedList/VirtualizedList.tsx

Lines changed: 1 addition & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ import {
77
} from './hooks/useVirtualizedListAnimation';
88
import { NodeOrientation } from '../../types/orientation';
99
import { typedMemo } from '../../helpers/TypedMemo';
10-
import { getLastLeftItemIndex, getLastRightItemIndex } from './helpers/getLastItemIndex';
1110
import { getSizeInPxFromOneItemToAnother } from './helpers/getSizeInPxFromOneItemToAnother';
1211
import { computeAllScrollOffsets } from './helpers/createScrollOffsetArray';
1312

@@ -158,9 +157,6 @@ export const VirtualizedList = typedMemo(
158157

159158
const dataSliceToRender = data.slice(range.start, range.end + 1);
160159

161-
const maxPossibleLeftAlignedIndex = getLastLeftItemIndex<T>(data, itemSize, listSizeInPx);
162-
const maxPossibleRightAlignedIndex = getLastRightItemIndex<T>(data, itemSize, listSizeInPx);
163-
164160
const allScrollOffsets = useMemo(
165161
() =>
166162
computeAllScrollOffsets({
@@ -170,19 +166,8 @@ export const VirtualizedList = typedMemo(
170166
scrollBehavior: scrollBehavior,
171167
data: data,
172168
listSizeInPx: listSizeInPx,
173-
maxPossibleLeftAlignedIndex: maxPossibleLeftAlignedIndex,
174-
maxPossibleRightAlignedIndex: maxPossibleRightAlignedIndex,
175169
}),
176-
[
177-
data,
178-
itemSize,
179-
listSizeInPx,
180-
maxPossibleLeftAlignedIndex,
181-
maxPossibleRightAlignedIndex,
182-
nbMaxOfItems,
183-
numberOfItemsVisibleOnScreen,
184-
scrollBehavior,
185-
],
170+
[data, itemSize, listSizeInPx, nbMaxOfItems, numberOfItemsVisibleOnScreen, scrollBehavior],
186171
);
187172

188173
useOnEndReached({

packages/lib/src/spatial-navigation/components/virtualizedList/helpers/createScrollOffsetArray.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import { ScrollBehavior } from '../VirtualizedList';
22
import { computeTranslation } from './computeTranslation';
3+
import { getLastLeftItemIndex, getLastRightItemIndex } from './getLastItemIndex';
34

45
/**
56
* This function precomputes all scroll offsets
@@ -12,18 +13,17 @@ export const computeAllScrollOffsets = <T>({
1213
scrollBehavior,
1314
data,
1415
listSizeInPx,
15-
maxPossibleLeftAlignedIndex,
16-
maxPossibleRightAlignedIndex,
1716
}: {
1817
itemSize: number | ((item: T) => number);
1918
nbMaxOfItems: number;
2019
numberOfItemsVisibleOnScreen: number;
2120
scrollBehavior: ScrollBehavior;
2221
data: T[];
2322
listSizeInPx: number;
24-
maxPossibleLeftAlignedIndex: number;
25-
maxPossibleRightAlignedIndex: number;
2623
}) => {
24+
const maxPossibleLeftAlignedIndex = getLastLeftItemIndex<T>(data, itemSize, listSizeInPx);
25+
const maxPossibleRightAlignedIndex = getLastRightItemIndex<T>(data, itemSize, listSizeInPx);
26+
2727
const scrollOffsets = data.map((_, index) =>
2828
computeTranslation({
2929
currentlyFocusedItemIndex: index,

0 commit comments

Comments
 (0)