'use client' export function Pagination({ totalPages, currentPage, fileId, callBack }: any) { const getVisiblePages = () => { const pages = []; const maxVisible = 7; let start = Math.max(1, currentPage - 3); let end = Math.min(totalPages, currentPage + 3); if (end - start + 1 < maxVisible) { if (start === 1) { end = Math.min(totalPages, start + maxVisible - 1); } else if (end === totalPages) { start = Math.max(1, end - maxVisible + 1); } } for (let i = start; i <= end; i++) { pages.push(i); } return pages; }; const visiblePages = getVisiblePages(); return (
{/* Кнопка первой страницы */} {visiblePages[0] > 1 && ( <> {visiblePages[0] > 2 && ...} )} {/* Видимые страницы */} {visiblePages.map(page => ( ))} {/* Кнопка последней страницы */} {visiblePages[visiblePages.length - 1] < totalPages && ( <> {visiblePages[visiblePages.length - 1] < totalPages - 1 && ...} )}
); }