UNPKG

@s-ui/react-molecule-pagination

Version:

`MoleculePagination` is a component that displays a range of pages with the current page highlighted and the proper buttons to navigate across the available pages in the entire range of total pages

35 lines (34 loc) 1.31 kB
import highRange from './highRange.js'; import lowRange from './lowRange.js'; /** * Gets the proper range for the page number according to the number of pages to display * @param {object} params - parameters pagination * @param {number} params.page - Original page number * @param {number} params.totalPages - Total number of pages * @param {number} params.showPages - Number of pages to display in the range of pages displayed * @return {number[]} range of page numbers */ var range = function range(_ref) { var page = _ref.page, totalPagesParam = _ref.totalPages, showEdges = _ref.showEdges, showPages = _ref.showPages; var totalPages = showEdges ? totalPagesParam - 1 : totalPagesParam; var _lowRange = lowRange({ page: page, showEdges: showEdges, showPages: showPages, totalPages: totalPages }); var _highRangeFixer = showPages > totalPages ? totalPages - 1 : showPages; var _highRange = showEdges ? _lowRange + _highRangeFixer : highRange({ page: page, totalPages: totalPages, showPages: showPages }); var rangeNumItems = _highRange === totalPages ? totalPages - _lowRange : showPages; return rangeNumItems > 0 ? [].concat(Array.from(new Array(rangeNumItems), function (_, i) { return _lowRange + i + 1; })) : []; }; export default range;