Advertisement
Hen_B_S

Pagination with Index Page

Mar 29th, 2023
937
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
TypeScript 1.83 KB | Source Code | 0 0
  1. type PageProps = {
  2.     page: EntityPage;
  3.     onPageChange: Function;
  4. }
  5. function Pagination({ page, onPageChange }: PageProps) {
  6.  
  7.     return (
  8.         <nav>
  9.             <ul className="pagination">
  10.                 <li className={`page-item ${page.first ? `disable` : ''}`}>
  11.                     <button className="page-link" onClick={() => onPageChange(page.number - 1)} aria-label="Previous">
  12.                         <span aria-hidden="true">&laquo;</span>
  13.                     </button>
  14.                 </li>
  15.  
  16.                 <li className={`page-item ${page.number}`}>
  17.                     <button className="page-link" onClick={() => onPageChange(page.number = 0)}>1</button>
  18.                 </li>
  19.                 <li className={`page-item ${page.number}`}>
  20.                     <button className="page-link" onClick={() => onPageChange(page.number = 1)}>2</button>
  21.                 </li>
  22.                 <li className={`page-item ${page.number}`}>
  23.                     <button className="page-link" onClick={() => onPageChange(page.number = 2)}>3</button>
  24.                 </li>
  25.                 <li className={`page-item ${page.number}`}>
  26.                     <button className="page-link" onClick={() => onPageChange(page.number = 3)}>4</button>
  27.                 </li>
  28.                 <li className={`page-item ${page.number}`}>
  29.                     <button className="page-link" onClick={() => onPageChange(page.number = 4)}>5</button>
  30.                 </li>
  31.  
  32.                 <li className={`page-item ${page.last ? `disabled` : ''}`}>
  33.                     <button className="page-link" onClick={() => onPageChange(page.number + 1)} aria-label="Next">
  34.                         <span aria-hidden="true">&raquo;</span>
  35.                     </button>
  36.                 </li>
  37.             </ul>
  38.         </nav>
  39.     );
  40. }
  41.  
  42. export default Pagination;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement