import { ChevronLeftIcon, ChevronRightIcon } from '@heroicons/react/24/outline'; interface PaginationProps { currentPage: number; totalPages: number; totalItems: number; itemsPerPage: number; onPageChange: (page: number) => void; } export default function Pagination({ currentPage, totalPages, totalItems, itemsPerPage, onPageChange }: PaginationProps) { const startItem = (currentPage - 1) * itemsPerPage + 1; const endItem = Math.min(currentPage * itemsPerPage, totalItems); const pages = []; const maxVisiblePages = 5; let startPage = Math.max(1, currentPage - Math.floor(maxVisiblePages / 2)); let endPage = Math.min(totalPages, startPage + maxVisiblePages - 1); if (endPage - startPage < maxVisiblePages - 1) { startPage = Math.max(1, endPage - maxVisiblePages + 1); } for (let i = startPage; i <= endPage; i++) { pages.push(i); } return (

Mostrando {startItem} a{' '} {endItem} de{' '} {totalItems} resultados

{startPage > 1 && ( <> {startPage > 2 && ( ... )} )} {pages.map(page => ( ))} {endPage < totalPages && ( <> {endPage < totalPages - 1 && ( ... )} )}
); }