SPB Git
974 B · 13 lines tsx
1import Link from "next/link";2import { t, type Locale } from "@/lib/i18n";3export function Pagination({ locale, page, total, perPage, base, params }: { locale: Locale; page: number; total: number; perPage: number; base: string; params: URLSearchParams }) {4  const d = t(locale); const pages = Math.max(1, Math.ceil(total / perPage)); if (pages <= 1) return null;5  const link = (p: number) => { const q = new URLSearchParams(params.toString()); q.set("page", String(p)); return `${base}?${q.toString()}`; };6  return (7    <nav aria-label="Pagination" className="flex items-center justify-between gap-3 mt-6 text-sm">8      <span className="text-fg-3">{d.misc.page} {page} {d.misc.of} {pages}</span>9      <span className="flex gap-2">{page > 1 && <Link href={link(page - 1)} className="btn btn-sm no-underline">← {d.misc.previous}</Link>}{page < pages && <Link href={link(page + 1)} className="btn btn-sm no-underline">{d.misc.next} →</Link>}</span>10    </nav>11  );12}13
Files · main
Menu

Theme