Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /**
- * @var Boolean paginationMaxList The length of list to print
- **/
- const paginationMaxList = 10;
- /**
- * Identify if pagination list-item should be shown, while keeping consistent count of list-items.
- *
- * @param Integer renderingPage Page Number to Render
- * @param Integer currentPage Current Page Number
- * @param Integer currentPage Maximum Page Number
- *
- * @return Boolean Flag to render list for said renderingPage
- **/
- const renderPagination = (renderingPage = 1, currentPage = 1, lastPagination = 1) => {
- const paginationBuffer = Math.ceil(paginationMaxList / 2);
- if (
- (renderingPage < 0) ||
- (renderingPage > lastPagination)
- ) {
- return false;
- }
- else {
- if (
- (
- ((currentPage - paginationBuffer) >= renderingPage) ||
- ((currentPage + paginationBuffer) < renderingPage)
- ) &&
- (!(
- (
- (renderingPage > currentPage) &&
- (renderingPage <= paginationMaxList)
- ) ||
- (
- (renderingPage < currentPage) &&
- (renderingPage > (lastPagination - paginationMaxList))
- )
- ))
- ) {
- return false;
- }
- }
- return true;
- }
- // Test print pagination listing to show
- const maxPage = 32;
- for (let currentPage=1; currentPage <= maxPage; currentPage++) {
- const shownPagi = [];
- for (let page=1; page <= maxPage; page++) {
- if (renderPagination(page, currentPage, maxPage)) {
- shownPagi.push(page);
- }
- }
- console.log('shownPagi', {count: shownPagi.length, currentPage, shownPagi});
- }
- // console
- shownPagi {"count":10,"currentPage":1,"shownPagi":[1,2,3,4,5,6,7,8,9,10]}
- shownPagi {"count":10,"currentPage":2,"shownPagi":[1,2,3,4,5,6,7,8,9,10]}
- shownPagi {"count":10,"currentPage":3,"shownPagi":[1,2,3,4,5,6,7,8,9,10]}
- shownPagi {"count":10,"currentPage":4,"shownPagi":[1,2,3,4,5,6,7,8,9,10]}
- shownPagi {"count":10,"currentPage":5,"shownPagi":[1,2,3,4,5,6,7,8,9,10]}
- shownPagi {"count":10,"currentPage":6,"shownPagi":[2,3,4,5,6,7,8,9,10,11]}
- shownPagi {"count":10,"currentPage":7,"shownPagi":[3,4,5,6,7,8,9,10,11,12]}
- shownPagi {"count":10,"currentPage":8,"shownPagi":[4,5,6,7,8,9,10,11,12,13]}
- shownPagi {"count":10,"currentPage":9,"shownPagi":[5,6,7,8,9,10,11,12,13,14]}
- shownPagi {"count":10,"currentPage":10,"shownPagi":[6,7,8,9,10,11,12,13,14,15]}
- shownPagi {"count":10,"currentPage":11,"shownPagi":[7,8,9,10,11,12,13,14,15,16]}
- shownPagi {"count":10,"currentPage":12,"shownPagi":[8,9,10,11,12,13,14,15,16,17]}
- shownPagi {"count":10,"currentPage":13,"shownPagi":[9,10,11,12,13,14,15,16,17,18]}
- shownPagi {"count":10,"currentPage":14,"shownPagi":[10,11,12,13,14,15,16,17,18,19]}
- shownPagi {"count":10,"currentPage":15,"shownPagi":[11,12,13,14,15,16,17,18,19,20]}
- shownPagi {"count":10,"currentPage":16,"shownPagi":[12,13,14,15,16,17,18,19,20,21]}
- shownPagi {"count":10,"currentPage":17,"shownPagi":[13,14,15,16,17,18,19,20,21,22]}
- shownPagi {"count":10,"currentPage":18,"shownPagi":[14,15,16,17,18,19,20,21,22,23]}
- shownPagi {"count":10,"currentPage":19,"shownPagi":[15,16,17,18,19,20,21,22,23,24]}
- shownPagi {"count":10,"currentPage":20,"shownPagi":[16,17,18,19,20,21,22,23,24,25]}
- shownPagi {"count":10,"currentPage":21,"shownPagi":[17,18,19,20,21,22,23,24,25,26]}
- shownPagi {"count":10,"currentPage":22,"shownPagi":[18,19,20,21,22,23,24,25,26,27]}
- shownPagi {"count":10,"currentPage":23,"shownPagi":[19,20,21,22,23,24,25,26,27,28]}
- shownPagi {"count":10,"currentPage":24,"shownPagi":[20,21,22,23,24,25,26,27,28,29]}
- shownPagi {"count":10,"currentPage":25,"shownPagi":[21,22,23,24,25,26,27,28,29,30]}
- shownPagi {"count":10,"currentPage":26,"shownPagi":[22,23,24,25,26,27,28,29,30,31]}
- shownPagi {"count":10,"currentPage":27,"shownPagi":[23,24,25,26,27,28,29,30,31,32]}
- shownPagi {"count":10,"currentPage":28,"shownPagi":[23,24,25,26,27,28,29,30,31,32]}
- shownPagi {"count":10,"currentPage":29,"shownPagi":[23,24,25,26,27,28,29,30,31,32]}
- shownPagi {"count":10,"currentPage":30,"shownPagi":[23,24,25,26,27,28,29,30,31,32]}
- shownPagi {"count":10,"currentPage":31,"shownPagi":[23,24,25,26,27,28,29,30,31,32]}
- shownPagi {"count":10,"currentPage":32,"shownPagi":[23,24,25,26,27,28,29,30,31,32]}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement