import Link from "next/link"; import type { BlogPagination } from "@/types"; interface PaginationProps { basePath: string; pagination: BlogPagination; searchQuery?: string; } export default function Pagination({ basePath, pagination, searchQuery }: PaginationProps) { const { current, total } = pagination; if (total <= 1) return null; const makeHref = (page: number) => { const params = new URLSearchParams(); if (page > 1) params.set("page", page.toString()); if (searchQuery) params.set("search", searchQuery); const qs = params.toString(); return qs ? `${basePath}?${qs}` : basePath; }; const pages: number[] = []; for (let i = 1; i <= total; i++) { if (i === 1 || i === total || (i >= current - 2 && i <= current + 2)) { pages.push(i); } } const items: (number | "...")[] = []; for (let i = 0; i < pages.length; i++) { const page = pages[i]; items.push(page); if (i < pages.length - 1 && pages[i + 1] !== page + 1) { items.push("..."); } } return ( ); }