"use client"
import NextLink from "next/link"
import { usePathname } from "next/navigation"

import { linkVariants } from "./variants"

import type { LinkProps } from "./link"

export default function Link({
  className,
  href,
  partialMatch = false,
  size,
  variant,
  ...props
}: LinkProps) {
  const currentPageSlug = usePathname()
  let isActive = currentPageSlug === href
  if (partialMatch && !isActive) {
    isActive = currentPageSlug.startsWith(href)
  }
  const classNames = linkVariants({
    active: isActive,
    className,
    size,
    variant,
  })
  return <NextLink className={classNames} href={href} {...props} />
}
