giant-piano is a small Javascript pagination utility. All it does is providing you the logic to render a pagination component in your app.
npm install giant-piano --save
Then, in your app:
var createPagination = require('giant-piano');
/*
`itemsPerPage` and `maxPages` are normally static,
so you should call `createPagination` only once.
*/
var paginate = createPagination({ itemsPerPage: 10, maxPages: 5 });
/*
Then, call `paginate` with the current page number
and the total amount of items.
*/
console.log(paginate({ currentPage: 5, totalItems: 63 }));
/* {
showFirst: true,
showPrev: true,
pages: [3, 4, 5, 6, 7],
showNext: true,
showLast: false,
lastPage: 7
}
*/
console.log(paginate({ currentPage: 2, totalItems: 34 }));
/* {
showFirst: false,
showPrev: true,
pages: [1, 2, 3, 4],
showNext: true,
showLast: false,
lastPage: 4
}
*/
console.log(paginate({ currentPage: 1, totalItems: 1234 }));
/* {
showFirst: false,
showPrev: false,
pages: [1, 2, 3, 4, 5],
showNext: true,
showLast: true,
lastPage: 124
}
*/
npm start