mirror of
https://github.com/wu736139669/ASHEBShop-h5.git
synced 2026-10-08 19:36:33 +00:00
43 lines
1.6 KiB
JavaScript
43 lines
1.6 KiB
JavaScript
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.
|
|
*
|
|
* @param direction One of SCROLL_DIRECTION_HORIZONTAL or SCROLL_DIRECTION_VERTICAL
|
|
* @param cellCount Number of rows or columns in the current axis
|
|
* @param scrollDirection One of SCROLL_DIRECTION_BACKWARD or SCROLL_DIRECTION_FORWARD
|
|
* @param overscanCellsCount Maximum number of cells to over-render in either direction
|
|
* @param startIndex Begin of range of visible cells
|
|
* @param stopIndex End of range of visible cells
|
|
*/
|
|
export default function defaultOverscanIndicesGetter(_ref) {
|
|
var direction = _ref.direction,
|
|
cellCount = _ref.cellCount,
|
|
overscanCellsCount = _ref.overscanCellsCount,
|
|
scrollDirection = _ref.scrollDirection,
|
|
startIndex = _ref.startIndex,
|
|
stopIndex = _ref.stopIndex;
|
|
|
|
var overscanStartIndex = void 0;
|
|
var overscanStopIndex = void 0;
|
|
|
|
switch (scrollDirection) {
|
|
case SCROLL_DIRECTION_FORWARD:
|
|
overscanStartIndex = startIndex;
|
|
overscanStopIndex = stopIndex + overscanCellsCount;
|
|
break;
|
|
case SCROLL_DIRECTION_BACKWARD:
|
|
overscanStartIndex = startIndex - overscanCellsCount;
|
|
overscanStopIndex = stopIndex;
|
|
break;
|
|
}
|
|
|
|
return {
|
|
overscanStartIndex: Math.max(0, overscanStartIndex),
|
|
overscanStopIndex: Math.min(cellCount - 1, overscanStopIndex)
|
|
};
|
|
} |