UNPKG

@s-ui/react-molecule-pagination

Version:

`MoleculePagination` is a component that displays a range of pages with the current page highlighted and the proper buttons to navigate across the available pages in the entire range of total pages

137 lines (114 loc) • 3.99 kB
# MoleculePagination `MoleculePagination` is a component that displays a range of pages with the current page highlighted and the proper buttons to navigate across the available pages in the entire range of total pages [![documentation](https://img.shields.io/badge/read%20the%20doc-black?logo=readthedocs)](https://sui-components.vercel.app/workbench/molecule/pagination/) [![issue](https://img.shields.io/badge/report%20a%20bug-black?logo=openbugbounty&logoColor=red)](https://github.com/SUI-Components/sui-components/issues/new?&projects=4&template=bug-report.yml&assignees=&template=report-a-bug.yml&title=🪲+&labels=bug,component,molecule,pagination) [![npm](https://img.shields.io/npm/dt/%40s-ui/react-molecule-pagination?logo=npm&labelColor=black)](https://www.npmjs.com/package/@s-ui/react-molecule-pagination) [![Issues open](https://img.shields.io/github/issues-search/SUI-Components/sui-components?query=is%3Aopen%20label%3Acomponent%20label%3Apagination&logo=openbugbounty&logoColor=red&label=issues%20open&color=red)](https://github.com/SUI-Components/sui-components/issues?q=is%3Aopen+label%3Acomponent+label%3Apagination) [![NPM](https://img.shields.io/npm/l/%40s-ui%2Freact-molecule-pagination)](https://github.com/SUI-Components/sui-components/blob/main/components/molecule/pagination/LICENSE.md) ## Installation ```sh $ npm install @s-ui/react-molecule-pagination --save ``` ## Usage ```js import MoleculePagination from '@s-ui/react-molecule-pagination' const ariaLabel = 'Paginación' const prevLinkAriaLabel = 'PÔgina previa' const nextLinkAriaLabel = 'PÔgina siguiente' const pagePrefixAriaLabel = 'PÔgina' const prevButtonIcon = () => <span>&lt;</span> const nextButtonIcon = () => <span>&gt;</span> const prevButtonText = 'Anterior' const nextButtonText = 'Siguiente' const onSelectNext = (e, {page}) => { console.log({e, page}) } const onSelectPrev = (e, {page}) => { console.log({e, page}) } const onSelectPage = (e, {page}) => { console.log({e, page}) } ``` ### Basic usage ```js <MoleculePagination ariaLabel={ariaLabel} prevLinkAriaLabel={prevLinkAriaLabel} nextLinkAriaLabel={nextLinkAriaLabel} pagePrefixAriaLabel={pagePrefixAriaLabel} totalPages={25} page={7} /> ``` ### Range of 5 pages ```js <MoleculePagination ariaLabel={ariaLabel} prevLinkAriaLabel={prevLinkAriaLabel} nextLinkAriaLabel={nextLinkAriaLabel} pagePrefixAriaLabel={pagePrefixAriaLabel} totalPages={25} page={7} showPages={5} /> ``` ### With icons ```js <MoleculePagination ariaLabel={ariaLabel} prevLinkAriaLabel={prevLinkAriaLabel} nextLinkAriaLabel={nextLinkAriaLabel} pagePrefixAriaLabel={pagePrefixAriaLabel} totalPages={25} page={7} prevButtonIcon={prevButtonIcon} nextButtonIcon={nextButtonIcon} /> ``` ### With translations ```js <MoleculePagination ariaLabel={ariaLabel} prevLinkAriaLabel={prevLinkAriaLabel} nextLinkAriaLabel={nextLinkAriaLabel} pagePrefixAriaLabel={pagePrefixAriaLabel} totalPages={25} page={7} prevButtonText={prevButtonText} nextButtonText={nextButtonText} /> ``` ### With callbacks ```js <MoleculePagination ariaLabel={ariaLabel} prevLinkAriaLabel={prevLinkAriaLabel} nextLinkAriaLabel={nextLinkAriaLabel} pagePrefixAriaLabel={pagePrefixAriaLabel} totalPages={25} page={7} onSelectNext={onSelectNext} onSelectPrev={onSelectPrev} onSelectPage={onSelectPage} /> ``` ### Full example ```js <MoleculePagination ariaLabel={ariaLabel} prevLinkAriaLabel={prevLinkAriaLabel} nextLinkAriaLabel={nextLinkAriaLabel} pagePrefixAriaLabel={pagePrefixAriaLabel} totalPages={25} page={7} prevButtonIcon={prevButtonIcon} nextButtonIcon={nextButtonIcon} prevButtonText={prevButtonText} nextButtonText={nextButtonText} onSelectNext={onSelectNext} onSelectPrev={onSelectPrev} onSelectPage={onSelectPage} /> ``` > **Find full description and more examples in the [demo page](https://sui-components.now.sh/workbench/molecule/pagination/demo).**