import React from 'react'; import { ChevronLeft, ChevronRight } from 'lucide-react'; interface PaginationProps { currentPage: number; totalPages: number; onPageChange: (page: number) => void; totalItems?: number; itemsPerPage?: number; } const Pagination: React.FC = ({ currentPage, totalPages, onPageChange, totalItems, itemsPerPage = 5, }) => { if (totalPages <= 1) return null; const getPageNumbers = () => { const pages: (number | string)[] = []; const maxVisiblePages = 5; if (totalPages <= maxVisiblePages) { for (let i = 1; i <= totalPages; i++) { pages.push(i); } } else { if (currentPage <= 3) { for (let i = 1; i <= 4; i++) { pages.push(i); } pages.push('...'); pages.push(totalPages); } else if (currentPage >= totalPages - 2) { pages.push(1); pages.push('...'); for (let i = totalPages - 3; i <= totalPages; i++) { pages.push(i); } } else { pages.push(1); pages.push('...'); for (let i = currentPage - 1; i <= currentPage + 1; i++) { pages.push(i); } pages.push('...'); pages.push(totalPages); } } return pages; }; const startItem = (currentPage - 1) * itemsPerPage + 1; const endItem = Math.min(currentPage * itemsPerPage, totalItems || 0); return (
{/* Mobile */}
{/* Desktop */}

Hiển thị{' '} {startItem} đến{' '} {endItem} trong tổng số{' '} {totalItems || 0} kết quả

); }; export default Pagination;