"use client";

import Link from "next/link";
import { usePathname } from "next/navigation";
import { primaryNav } from "@/data/common/nav";

export function isActiveNavRoute(pathname: string, href: string): boolean {
  if (href === "/") return pathname === "/";
  const base = href.replace(/\/$/, "");
  if (pathname === base) return true;
  if (pathname.startsWith(`${base}/`)) return true;
  // Keep News (/blog) active on blog-detail
  if (base === "/blog" && pathname === "/blog-detail") return true;
  return false;
}

/** Shared desktop + mobile nav links — `li.active` / `a.active` from template CSS. */
export default function PrimaryNavItems() {
  const pathname = usePathname() ?? "";

  return (
    <>
      {primaryNav.map((item) => {
        const active = isActiveNavRoute(pathname, item.href);
        return (
          <li key={item.href} className={active ? "active" : undefined}>
            <Link
              href={item.href}
              className={active ? "active" : undefined}
              aria-current={active ? "page" : undefined}
            >
              {item.label}
            </Link>
          </li>
        );
      })}
    </>
  );
}
