import React from 'react'; import { Pagination as UIPagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious, } from '@/components/ui/pagination'; interface PaginationProps { currentPage: number; lastPage: number; onPageChange: (page: number) => void; className?: string; } export function Pagination({ currentPage, lastPage, onPageChange, className = 'my-8' }: PaginationProps) { return ( {currentPage > 1 && ( { e.preventDefault(); onPageChange(Math.max(currentPage - 1, 1)); }} /> )} {/* First page */} { e.preventDefault(); onPageChange(1); }} > 1 {/* Ellipsis if needed */} {currentPage > 3 && ( )} {/* Page before current if not first or second page */} {currentPage > 2 && ( { e.preventDefault(); onPageChange(currentPage - 1); }} > {currentPage - 1} )} {/* Current page if not first page */} {currentPage !== 1 && currentPage !== lastPage && ( e.preventDefault()} > {currentPage} )} {/* Page after current if not last or second-to-last page */} {currentPage < lastPage - 1 && ( { e.preventDefault(); onPageChange(currentPage + 1); }} > {currentPage + 1} )} {/* Ellipsis if needed */} {currentPage < lastPage - 2 && ( )} {/* Last page if not first page */} {lastPage > 1 && ( { e.preventDefault(); onPageChange(lastPage); }} > {lastPage} )} {currentPage < lastPage && ( { e.preventDefault(); onPageChange(Math.min(currentPage + 1, lastPage)); }} /> )} ); }