"use client"; import { ChevronLeft, ChevronRight, MoreHorizontal } from "lucide-react"; import { cn } from "@/lib/utils"; interface PaginationProps { currentPage: number; totalPages: number; onPageChange: (page: number) => void; className?: string; } export function Pagination({ currentPage, totalPages, onPageChange, className }: PaginationProps) { // Ne pas afficher la pagination s'il n'y a qu'une seule page if (totalPages <= 1) return null; // Fonction pour générer la liste des pages à afficher const getPageNumbers = () => { const pages: (number | "...")[] = []; if (totalPages <= 7) { // Si moins de 7 pages, afficher toutes les pages for (let i = 1; i <= totalPages; i++) { pages.push(i); } } else { // Toujours afficher la première page pages.push(1); if (currentPage > 3) { pages.push("..."); } // Pages autour de la page courante for ( let i = Math.max(2, currentPage - 1); i <= Math.min(totalPages - 1, currentPage + 1); i++ ) { pages.push(i); } if (currentPage < totalPages - 2) { pages.push("..."); } // Toujours afficher la dernière page pages.push(totalPages); } return pages; }; return ( ); }