Simple pagination algorithm
npm install pagesify> Simple pagination algorithm
- node.js
```
$ npm install --save pagesify
`js
import { paginate } from 'pagesify';
const items = [
'radiohead',
'jamie woon',
'actress',
'joy division',
'burial',
'sampha',
'the xx',
'nicolas jaar',
'boards of canada',
'james blake',
'nicolas jaar',
'apparat',
'clark',
];
const currentPage = 3;
const pagination = paginate(items, currentPage, {
placeholder: '..',
itemsPerPage: 3,
});
console.log(pagination.handles);
// ['prev', 1, 2, 3, 4, 5, 'next']
console.log(pagination.pages);
// [
// ['radiohead', 'jamie woon', 'actress'],
// ['joy division', 'burial', 'sampha'],
// ['the xx', 'nicolas jaar', 'boards of canada'],
// ['james blake', 'nicolas jaar', 'apparat'],
// ['clark']
// ]
`
This library is written in TypeScript and includes type definitions. The interfaces are automatically available when importing:
`typescript
import { paginate, PagesifyOptions, PaginationResult } from 'pagesify';
const options: PagesifyOptions = {
placeholder: '..',
itemsPerPage: 3,
stableHandles: false,
};
const items = ['item1', 'item2', 'item3'];
const result: PaginationResult
`
Main function to paginate a list of items and generate navigation handles.
items: T[] - Array of items to paginate number
currentPage: - Current page number (1-based) PagesifyOptions
options: (optional) - Configuration options
Returns: PaginationResult containing:
- handles: Array of page numbers, 'prev', 'next', and placeholder stringspages
- : 2D array of paginated items
- placeholder (default='..')
Symbol representing collapsed page ranges
- itemsPerPage (default=2)
Number of items per page
- stableHandles (default=false)
If true, 'prev' and 'next' handles are always shown even on first/last page
Generates navigation handles for pagination UI.
currentPage: number - Current page (1-based) number
pageCount: - Total number of pages PagesifyOptions
options: (optional)
Returns: Array of handles (string | number)[]
Splits a flat list into pages.
list: T[] - Array of items number
itemsPerPage: - Items per page
Returns: T[][]` - Array of pages
---
MIT © Ricardo Matias