import React from 'react'; import Link from 'next/link'; interface PaginationProps { currentPage: number; totalPages: number; basePath: string; } const Pagination: React.FC = ({ currentPage, totalPages, basePath }) => { // Generate page numbers to display const getPageNumbers = () => { // Always show first and last page // Show 2 pages before and after current page const pageNumbers = new Set(); // Add current page pageNumbers.add(currentPage); // Add adjacent pages for (let i = Math.max(1, currentPage - 2); i <= Math.min(totalPages, currentPage + 2); i++) { pageNumbers.add(i); } // Always add first and last page pageNumbers.add(1); pageNumbers.add(totalPages); // Convert to array and sort return Array.from(pageNumbers).sort((a, b) => a - b); }; const pageNumbers = getPageNumbers(); // Generate link for a page number const getPageLink = (pageNum: number) => { if (pageNum === 1) { return basePath; } return `${basePath}/page/${pageNum}`; }; return ( ); }; export default Pagination;