Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

@halkeye/react-paginate

halkeye753MIT7.2.3

A ReactJS component that creates a pagination.

react-component, paginate, paginator, pagination

readme

react-paginate

NPM Build Status

A ReactJS component to render a pagination.

By installing this component and writing only a little bit of CSS you can obtain this:

Pagination demo 2

or

Pagination demo 1

Installation

Install react-paginate with npm:

$ npm install react-paginate --save

For CommonJS users:

import ReactPaginate from 'react-paginate';

Read the code of demo/js/demo.js. You will quickly understand how to make react-paginate work with a list of objects.

Demo

Clone the repository and move into:

$ git clone git@github.com:AdeleD/react-paginate.git
$ cd react-paginate

Install dependencies:

$ make install

Prepare the demo:

$ make demo

Run the server:

$ make serve

Open your browser and go to http://localhost:3000/

Pagination demo

Props

Name Type Description
pageCount Number Required. The total number of pages.
pageRangeDisplayed Number Required. The range of pages displayed.
marginPagesDisplayed Number Required. The number of pages to display for margins.
previousLabel Node Label for the previous button.
nextLabel Node Label for the next button.
breakLabel Node Label for ellipsis.
breakClassName String The classname on tag li of the ellipsis element.
breakLinkClassName String The classname on tag a of the ellipsis element.
onPageChange Function The method to call when a page is clicked. Exposes the current page object as an argument.
initialPage Number The initial page selected.
forcePage Number To override selected page with parent prop.
disableInitialCallback boolean Disable onPageChange callback with initial page. Default: false
containerClassName String The classname of the pagination container.
pageClassName String The classname on tag li of each page element.
pageLinkClassName String The classname on tag a of each page element.
activeClassName String The classname for the active page.
activeLinkClassName String The classname on the active tag a.
previousClassName String The classname on tag li of the previous button.
nextClassName String The classname on tag li of the next button.
previousLinkClassName String The classname on tag a of the previous button.
nextLinkClassName String The classname on tag a of the next button.
disabledClassName String The classname for disabled previous and next buttons.
hrefBuilder Function The method is called to generate the href attribute value on tag a of each page element.
extraAriaContext String DEPRECATED: Extra context to add to the aria-label HTML attribute.
ariaLabelBuilder Function The method is called to generate the aria-label attribute value on each page link
eventListener String The event to listen onto before changing the selected page. Default is: "onClick".

Contribute

  1. Submit an issue
  2. Fork the repository
  3. Create a dedicated branch (never ever work in master)
  4. The first time, run command: webpack into the directory
  5. Run npm start
  6. Fix bugs or implement features
  7. Always write tests

Run tests:

$ make test

changelog

>= 7.1.0

  • Compatibility with React v17.0

>= 7.0.0

>= 6.5.0

  • Add a prop 'eventListener' to let users use a custom event listener on prev/next buttons, pages and break views.

>= 6.4.0

>= 6.3.2

>= 6.3.1

>= 6.3.0

>= 6.2.1

>= 6.2.0

  • Add the breakLinkClassName prop.

>= 6.1.0

>= 6.0.0

  • Implement forward/backward jump when clicking on a breakview (ellipsis).
  • The 'breakLabel' prop should not receive an <a> tag anymore. Otherwise, a warning will appear in the JS console: validateDOMNesting(...): <a> cannot appear as a descendant of <a>.

>= 5.3.1

>= 5.3.0

  • Add the activeLinkClassName property.

>= 5.2.5

  • Upgrade webpack dev dependencies (Fix "Cannot read property 'properties' of undefined" from webpack-cli).

>= 5.2.4

>= 5.2.3

>= 5.2.2

>= 5.2.1

>= 5.2.0

  • Delete the dependency on react-addons-create-fragment.
  • Delete the dependency on classnames.

>= 5.1.0

  • Refactor using destructuring.
  • Upgrade react-hot-loader to version 3.0.0 (dev dependency).

>= 5.0.0

  • Compatibility with React v16.0

>= 4.3.0

  • The HTML attribute aria-label has been added.
  • A new prop extraAriaContext allows to add some extra text to the end of the aria-label to provide additional context to the users.

>= 4.2.0

  • A new prop hrefBuilder has been added. It allows to add custom href attributes on <a> tags of the component.
  • Packages react and react-addons-create-fragment are now dependencies (see package.json).

>= 4.0.0

  • Some variable have been renamed:

    • clickCallback -> onPageChange
    • initialSelected -> initialPage
    • forceSelected -> forcePage
    • pageNum -> pageCount
  • onClick events have been moved on <a> tags (previously on <li>s).

>= 3.0.0

clickCallback (onPageChange) isn't called during initialization anymore.

>= 1.0.0

HTML Structure:

<ul class="pagination">
  <li class="disabled">
    <a href="#"><span>«</span></a>
  </li>
  <li class="active"><a href="#">1</a></li>
  <li><a href="#">2</a></li>
  <li><a href="#">3</a></li>
  <li><a href="#">4</a></li>
  <li><a href="#">5</a></li>
  <li>
    <a href="#"><span>»</span></a>
  </li>
</ul>

<= 0.5.7

HTML Structure:

<ul>
  <li class="disabled">
    <a href="#"><span>«</span></a>
  </li>
  <li>
    <ul>
      <li class="active"><a href="#">1</a></li>
      <li><a href="#">2</a></li>
      <li><a href="#">3</a></li>
      <li><a href="#">4</a></li>
      <li><a href="#">5</a></li>
    </ul>
  </li>
  <li>
    <a href="#"><span>»</span></a>
  </li>
</ul>