giant-piano

Minimal Javascript pagination utility

Usage no npm install needed!

<script type="module">
  import giantPiano from 'https://cdn.skypack.dev/giant-piano';
</script>

README

giant-piano

Build Status NPM Version

Description

giant-piano is a small Javascript pagination utility. All it does is providing you the logic to render a pagination component in your app.

Features

Usage

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
   }
*/

Run demo locally

npm start

License

MIT