tYuriy / react_pagination

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

React Pagination

Here is the working version

You a given a list of items and markup for the Pagination. Implement the Pagination as a stateless component to show only the items for a current page.

  1. The Pagination should be used with the next props:
    <Pagination
      total={42} // total number of items to paginate
      perPage={5} // number of items per page
      currentPage={1} /* optional with 1 by default */
      onPageChange={(page) => { ... }}
    />
  2. Keep the HTML stucture data-cy attributes;
  3. Show all the existing pages considering total and perPage
  4. Current page should be highlighted with li.active;
  5. onPageChange callback should be triggered only if page was changed;
  6. The App should listen to the onPageChange and save a new page;
  7. « and » links should open the prev and the next pages accordingly
    • disable each of them if it is already the first or the last page (use li.disabled and a[aria-disabled="true"])
  8. Show the pagination info inside data-cy="info" in the next format Page 1 (items 1 - 5 of 42);
  9. Implement the <select data-cy="perPageSelector"> with 3, 5, 10, 20 options to change the perPage;
    • show the 1st page after changing a perPage;
  10. (*) Use React Router to save ?page=2&perPage=7 in the URL and apply them on page load

Instructions

About

License:GNU General Public License v3.0


Languages

Language:JavaScript 67.7%Language:TypeScript 27.8%Language:HTML 4.2%Language:Shell 0.2%Language:CSS 0.1%