import Link from "next/link";
import { cn } from "@/lib/cn";

export function Pagination({
  currentPage,
  totalPages,
  hrefBuilder,
}: {
  currentPage: number;
  totalPages: number;
  hrefBuilder?: (page: number) => string;
}) {
  return (
    <nav className="flex items-center justify-center gap-2">
      {Array.from({ length: totalPages }, (_, index) => index + 1)
        .slice(0, 5)
        .map((page) => {
          const classes = cn(
            "inline-flex size-9 items-center justify-center rounded-[6px] text-[14px] font-medium tracking-[-0.02em]",
            page === currentPage
              ? "bg-accent text-white"
              : "text-primary",
          );

          return hrefBuilder ? (
            <Link key={page} href={hrefBuilder(page)} className={classes}>
              {page}
            </Link>
          ) : (
            <button type="button" key={page} className={classes}>
              {page}
            </button>
          );
        })}
    </nav>
  );
}
