Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/brunobertolini/paginatex
A generic pagination algorithm
https://github.com/brunobertolini/paginatex
hacktoberfest pagination
Last synced: about 2 months ago
JSON representation
A generic pagination algorithm
- Host: GitHub
- URL: https://github.com/brunobertolini/paginatex
- Owner: brunobertolini
- Created: 2019-01-09T16:26:03.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2023-03-04T04:12:36.000Z (over 1 year ago)
- Last Synced: 2024-05-01T15:26:24.764Z (5 months ago)
- Topics: hacktoberfest, pagination
- Language: JavaScript
- Homepage: https://codesandbox.io/s/loving-mclaren-4265rwmzlx
- Size: 1.75 MB
- Stars: 44
- Watchers: 2
- Forks: 1
- Open Issues: 11
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Funding: .github/FUNDING.yml
Awesome Lists containing this project
README
> A generic, framework agnostic, pagination calculator
## Highlights
- :electric_plug: Framework agnostic
- :trophy: Dependency free
- :fire: Higly flexible### ✨ [Demo](https://codesandbox.io/s/loving-mclaren-4265rwmzlx)
## Install
```
yarn add pagix
```## Basic Usage
```js
import { pagix } from 'pagix'const paginate = pagix({ records: 100 })
```The `pagix` function returns an object with some calculated props:
- **total**: total number of pages
- **current**: current page number, constrained between `1` and `total`
- **start**: an array of page numbers, the first `fixed` page numbers
- **middle**: an array of page numbers, calculated from `current` page
- **end**: an array of page numbers, the last `fixed` page numbers
- **prev**: the previous page number between `start` and `middle`, false if there is no truncated pages between `start` and `middle`
- **next**: the next page number between `middle` and `end`, false if there is no truncated pages between `middle` and `end`
- **from**: initial record in current page
- **to**: last record in current page![pagination explain](./pagination.png)
## API
**pagix({ records [, limit, current, delta, fixed ] })**: Main method to calculate pagination
| Prop | Required | Default | Description |
| ------- | -------- | ------- | --------------------------------------------------------------- |
| records | true | - | total of records to paginate |
| limit | false | 10 | total of records to show per page |
| current | true | 1 | current page |
| delta | true | 1 | total of pages to show in each side of current page |
| fixed | true | 1 | total of pages to show before prev button and after next button |## 🤝 Contributing
Contributions, issues and feature requests are welcome!
Feel free to check [issues page](https://github.com/brunobertolini/pagix/issues).## Show your support
Give a ⭐️ if this project helped you!