"use client";

import NextLink from "next/link";
import { usePathname as useNextPathname } from "next/navigation";
import { useLocale } from "../context/LocaleContext";

type LocaleLinkProps = React.ComponentProps<typeof NextLink>;

export function LocaleLink({ href, ...props }: LocaleLinkProps) {
  const locale = useLocale();
  const hrefStr = typeof href === "string" ? href : href.pathname ?? "/";
  const localeHref = hrefStr.startsWith("/")
    ? `/${locale}${hrefStr === "/" ? "" : hrefStr}`
    : hrefStr;
  return <NextLink href={localeHref} {...props} />;
}

export function usePathname() {
  const path = useNextPathname();
  const match = path?.match(/^\/(zh|en)(\/.*)?$/);
  return match ? (match[2] ?? "/") : path ?? "/";
}
