import { type FC, type AnchorHTMLAttributes } from 'react'; import cn from 'classnames'; import { tidyUrlString } from '../utils'; import ExternalLinkIcon from '../svg/external-link.svg'; import '../styles/components/external-link.scss'; export type Props = Exclude, 'href'> & { /** * The location that is visted when clicked */ url: string | null; /** * Decides if a new browser tab should be opened or not, defaults to true */ newTab?: boolean; tidyUrl?: boolean; noIcon?: boolean; }; const ExternalLink: FC = ({ children, url, tidyUrl = false, newTab = true, className, rel, noIcon = false, ...props }) => url ? ( {children || (tidyUrl ? tidyUrlString(url) : url)} {!noIcon && ( )} ) : ( <>{children} ); export default ExternalLink;