import React, { useEffect, useState } from "react"; const Pagination = ({ page, setPage, showItem, total, limit }) => { const [lastPage, SetLastPage] = useState(Math.ceil(total / limit)); const clickPage = (value) => { setPage(value); }; const previusPage = () => { setPage(page - 1); }; const nextPage = () => { setPage(page + 1); }; useEffect(() => { SetLastPage(Math.ceil(total / limit)); }, [total, showItem]); return (
Showing {showItem} From{" "} {total} Data
{page > 1 ? (
{"<"}
) : undefined} {lastPage <= 1 ? undefined : Array.from({ length: lastPage }, (_, index) => { const pageNumber = index + 1; if (pageNumber === 1 || pageNumber === lastPage) { return (
clickPage(pageNumber)} key={index} className={`flex px-3 py-1 ${ page === pageNumber ? "bg-slate-900 text-white" : "hover:bg-gray-200" } rounded-md border-[2px] duration-300 ease-in-out cursor-pointer`} > {pageNumber}
); } else if (Math.abs(page - pageNumber) <= 1) { return (
clickPage(pageNumber)} key={index} className={`flex px-3 py-1 ${ page === pageNumber ? "bg-slate-900 text-white dark:text-white" : "hover:bg-gray-200" } rounded-md border-[2px] duration-300 ease-in-out cursor-pointer`} > {pageNumber}
); } })} {page < lastPage ? (
{">"}
) : undefined}
); }; export default Pagination;