"use client"; import { useSearchParams } from "next/navigation"; import Link from "next/link"; import { useMemo } from "react"; import { Icon } from "@iconify/react"; interface Props { lastPage: number; } export default function Pagination({ lastPage }: Props) { const searchParams = useSearchParams(); const page = Number(searchParams.get("page") ?? 1); const createPageUrl = (pageNumber: number) => { const params = new URLSearchParams(searchParams); params.set("page", pageNumber.toString()); return `/?${params.toString()}`; }; const numbers = useMemo(() => { const result = []; // Always show 5 pages, centering around the current page when possible const start = Math.max(1, Math.min(page - 2, lastPage - 4)); const end = Math.min(lastPage, start + 4); for (let i = start; i <= end; i++) result.push(i); return result; }, [page, lastPage]); return (