Files
caszl-next/app/components/Pagination.tsx
quantulr b6a722fa79 update
2023-11-03 17:25:10 +08:00

55 lines
1.2 KiB
TypeScript

import Link from "next/link";
const Pagination = ({
page,
total,
perPage,
}: {
page: number;
total: number;
perPage: number;
}) => {
const pageCount = Math.ceil(total / perPage);
return (
<div
className={"mt-2.5 flex h-10 w-full items-center justify-center text-sm"}
>
{page <= 1 ? (
<div className={"prev mx-3 cursor-not-allowed text-gray-500"}>
</div>
) : (
<Link className={"next mx-3 block"} href={`./${page - 1}`}>
</Link>
)}
{[...Array(pageCount)].map((el, index) =>
page === index + 1 ? (
<div key={index} className={`page-item mx-3 text-[#009fe9]`}>
{index + 1}
</div>
) : (
<Link
className={"page-item mx-3 text-[#666666]"}
key={index}
href={`./${index + 1}`}
>
{index + 1}
</Link>
),
)}
{page >= pageCount ? (
<div className={"next mx-3 cursor-not-allowed text-gray-500"}>
</div>
) : (
<Link className={"next mx-3 block"} href={`./${page + 1}`}>
</Link>
)}
</div>
);
};
export default Pagination;