"use client"; type AdminPaginationProps = { currentPage: number; totalPages: number; onPageChange: (page: number) => void; className?: string; }; export default function AdminPagination({ currentPage, totalPages, onPageChange, className = "" }: AdminPaginationProps) { if (totalPages <= 1) return null; return (
{Array.from({ length: totalPages }, (_, i) => i).map((page) => { // Show first, last, current, and adjacent pages const showPage = page === 0 || page === totalPages - 1 || Math.abs(page - currentPage) <= 1; // Show ellipsis const showEllipsisBefore = page === 1 && currentPage > 2; const showEllipsisAfter = page === totalPages - 2 && currentPage < totalPages - 3; if (!showPage && !showEllipsisBefore && !showEllipsisAfter) return null; if (showEllipsisBefore || showEllipsisAfter) { return ( ); } return ( ); })}
); } // Simple previous/next pagination type AdminSimplePaginationProps = { page: number; totalPages: number; onPageChange: (page: number) => void; className?: string; }; export function AdminSimplePagination({ page, totalPages, onPageChange, className = "" }: AdminSimplePaginationProps) { return (
Page {page + 1} of {totalPages}
); }