import NextLink from "next/link"; import { Anchor } from "@mbao01/common"; import { cn } from "@mbao01/common/utilities"; import { ExternalLinkIcon } from "lucide-react"; import { getLinkClasses } from "./constants"; import { type LinkProps } from "./types"; export const Link = ({ href, hover, target, variant, children, className, underline = false, isExternal = false, isInternal = true, hardNavigate = false, ...props }: LinkProps) => { if (isInternal === false) { return ( {children} ); } return ( ["href"], string>} target={target} className={cn(getLinkClasses({ hover, variant, underline }), className)} {...props} {...(isExternal && { rel: "noopener noreferrer" })} {...(hardNavigate && { prefetch: props.prefetch ?? true, onNavigate: (e) => { props.onNavigate?.(e); }, })} > {children} {isExternal ? : null} ); };