import { Flex, IconButton, Button } from '@strapi/design-system';
import { ChevronLeft, ChevronRight, More } from '@strapi/icons';
import useFormattedLabel from '../../hooks/useFormattedLabel';
interface PaginationProps {
page: number;
maxPerPage: number;
numberOfItems: number;
setPage: (page: number) => void;
}
export function Pagination({ page, numberOfItems, setPage, maxPerPage }: PaginationProps) {
const totalPages = Math.ceil(numberOfItems / maxPerPage) || 1;
const handlePrevPage = () => {
if (page === 1) return;
setPage(page - 1);
};
const handleNextPage = () => {
if (page === totalPages) return;
setPage(page + 1);
};
const pagesArray = Array.from({ length: totalPages }, (_, i) => i + 1).map((item) => {
return (
);
})
return (
{
pagesArray.length > 5 ? (
<>
{pagesArray.slice(0, 2)}
{pagesArray.slice(-1)}
>
) : (
pagesArray
)
}
);
}