// ============================================================================== // Author: Simon-Pierre Boucher // File: components/Pager.tsx // Desc: Pagination numérotée en bas des résultats (fenêtre 1 … n-1 n n+1 … N) // pour ne jamais surcharger une page — style éditorial sharp. // ============================================================================== export default function Pager({ page, pageCount, onPage }: { page: number; // page courante, base 0 pageCount: number; onPage: (p: number) => void; }) { if (pageCount <= 1) return null; const nums: (number | "…")[] = []; const push = (n: number | "…") => { if (nums[nums.length - 1] !== n) nums.push(n); }; for (let i = 0; i < pageCount; i++) { if (i === 0 || i === pageCount - 1 || Math.abs(i - page) <= 1) push(i); else push("…"); } const go = (p: number) => { onPage(p); window.scrollTo({ top: 0 }); }; return ( ); }