import { ChevronLeft, ChevronRight } from 'lucide-react'; import React from 'react'; import { Box } from './Box'; import { Button } from './Button'; import { Text } from './Text'; export interface PaginationProps { currentPage: number; totalPages: number; onPageChange: (page: number) => void; } export const Pagination = ({ currentPage, totalPages, onPageChange }: PaginationProps) => { const pages = Array.from({ length: totalPages }, (_, i) => i + 1); const visiblePages = pages.filter(page => { if (totalPages <= 7) return true; if (page === 1 || page === totalPages) return true; if (page >= currentPage - 1 && page <= currentPage + 1) return true; return false; }); return ( Page {currentPage} of {totalPages} {visiblePages.map((page, index) => { const prevPage = visiblePages[index - 1]; const showEllipsis = prevPage && page - prevPage > 1; return ( {showEllipsis && ...} ); })} ); };