@workday/canvas-kit-react
Version:
The parent module that contains all Workday Canvas Kit React components
21 lines (20 loc) • 950 B
JavaScript
const buildRange = (max, min) => {
// `max` determines the size of the range, and `min + index` determines its values
return [...Array(max)].map((_, index) => min + index);
};
export const buildPageRange = ({ currentPage, lastPage, rangeSize }) => {
// prevent the range size exceeding the number of pages
const adjustedRangeSize = lastPage < rangeSize ? lastPage : rangeSize;
// Prevent the range from going below 1
if (currentPage <= Math.floor(rangeSize / 2)) {
const rangeMin = 1;
return buildRange(adjustedRangeSize, rangeMin);
}
// Prevent the range from going above the lastPage
if (currentPage + Math.floor(adjustedRangeSize / 2) > lastPage) {
const rangeMin = lastPage - adjustedRangeSize + 1;
return buildRange(adjustedRangeSize, rangeMin);
}
const rangeMin = currentPage - Math.floor(adjustedRangeSize / 2);
return buildRange(adjustedRangeSize, rangeMin);
};