Skip to content

getchards/react_pagination

 
 

Repository files navigation

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

  • Install Prettier Extention and use this VSCode settings to enable format on save.
  • Implement a solution following the React task guideline.
  • Use the React TypeScript cheat sheet.
  • Open one more terminal and run tests with npm test to ensure your solution is correct.
  • Replace <your_account> with your Github username in the DEMO LINK and add it to the PR description.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript 47.9%
  • JavaScript 47.2%
  • HTML 4.8%
  • CSS 0.1%