CoreControl/components/Pagination.tsx

39 lines
1.2 KiB
TypeScript
Raw Normal View History

2025-05-18 12:40:11 +02:00
export default function Pagination({
currentPage,
totalItems,
itemsPerPage,
onPageChange
}: {
currentPage: number;
totalItems: number;
itemsPerPage: number;
onPageChange: (page: number) => void;
}) {
2025-05-19 00:35:23 +02:00
const totalPages = Math.max(1, Math.ceil(totalItems / itemsPerPage));
if (totalItems === 0) {
return null;
}
2025-05-18 12:40:11 +02:00
return (
<div className="flex justify-center pt-4">
2025-05-18 13:03:34 +02:00
<div className="join">
<button
className="join-item btn"
onClick={() => onPageChange(currentPage - 1)}
disabled={currentPage === 1}
>
«
</button>
<button className="join-item btn">Page {currentPage}</button>
<button
className="join-item btn"
onClick={() => onPageChange(currentPage + 1)}
2025-05-19 00:35:23 +02:00
disabled={currentPage === totalPages || totalItems === 0}
2025-05-18 13:03:34 +02:00
>
»
</button>
</div>
2025-05-18 12:40:11 +02:00
</div>
);
}