import React from "react"; interface PaginationProps { currentPage: number; totalPages: number; onPageChange: (page: number) => void; } const Pagination: React.FC = ({ currentPage, totalPages, onPageChange, }) => { const getPageNumbers = () => { const pageNumbers: (number | string)[] = []; const maxVisiblePages = 5; // تعداد حداکثری صفحات قابل مشاهده if (totalPages <= maxVisiblePages) { for (let i = 1; i <= totalPages; i++) { pageNumbers.push(i); } } else { if (currentPage > 3) { pageNumbers.push(1); if (currentPage > 4) { pageNumbers.push("..."); } } const start = Math.max(2, currentPage - 1); const end = Math.min(totalPages - 1, currentPage + 1); for (let i = start; i <= end; i++) { pageNumbers.push(i); } if (currentPage < totalPages - 2) { if (currentPage < totalPages - 3) { pageNumbers.push("..."); } pageNumbers.push(totalPages); } } return pageNumbers; }; const pageNumbers = getPageNumbers(); return (
{/* دکمه قبلی */} {/* */} {/* شماره صفحات */} {pageNumbers.map((page, index) => typeof page === "number" ? ( ) : ( {page} ) )} {/* دکمه بعدی */} {/* */}
); }; export default Pagination;