UNPKG

react-virtualized

Version:

React components for efficiently rendering large, scrollable lists and tabular data

29 lines (27 loc) 1.14 kB
/*:: import type {OverscanIndicesGetterParams, OverscanIndices} from './types';*/ export var SCROLL_DIRECTION_BACKWARD = -1; export var SCROLL_DIRECTION_FORWARD = 1; export var SCROLL_DIRECTION_HORIZONTAL = 'horizontal'; export var SCROLL_DIRECTION_VERTICAL = 'vertical'; /** * Calculates the number of cells to overscan before and after a specified range. * This function ensures that overscanning doesn't exceed the available cells. */ export default function defaultOverscanIndicesGetter(_ref /*:: */) /*: OverscanIndices*/{ var cellCount = _ref /*:: */.cellCount, overscanCellsCount = _ref /*:: */.overscanCellsCount, scrollDirection = _ref /*:: */.scrollDirection, startIndex = _ref /*:: */.startIndex, stopIndex = _ref /*:: */.stopIndex; if (scrollDirection === SCROLL_DIRECTION_FORWARD) { return { overscanStartIndex: Math.max(0, startIndex), overscanStopIndex: Math.min(cellCount - 1, stopIndex + overscanCellsCount) }; } else { return { overscanStartIndex: Math.max(0, startIndex - overscanCellsCount), overscanStopIndex: Math.min(cellCount - 1, stopIndex) }; } }