diff options
| author | Armand Philippot <git@armandphilippot.com> | 2022-03-31 22:34:23 +0200 | 
|---|---|---|
| committer | Armand Philippot <git@armandphilippot.com> | 2022-03-31 22:34:23 +0200 | 
| commit | 4a79f0d5511d6a6732428687740f8190e000f1b9 (patch) | |
| tree | dbd7c8a1abdb607f18dc2f72406e5a225cde1602 /src/components/atoms/links/link.tsx | |
| parent | 581632a626f81bce522be1cd809e9832d5b11c99 (diff) | |
chore: add a Link component
Diffstat (limited to 'src/components/atoms/links/link.tsx')
| -rw-r--r-- | src/components/atoms/links/link.tsx | 41 | 
1 files changed, 41 insertions, 0 deletions
| diff --git a/src/components/atoms/links/link.tsx b/src/components/atoms/links/link.tsx new file mode 100644 index 0000000..0a69c33 --- /dev/null +++ b/src/components/atoms/links/link.tsx @@ -0,0 +1,41 @@ +import NextLink from 'next/link'; +import { FC } from 'react'; +import styles from './link.module.scss'; + +type LinkProps = { +  /** +   * True if it is an external link. Default: false. +   */ +  external?: boolean; +  /** +   * The link target. +   */ +  href: string; +  /** +   * The link target code language. +   */ +  lang?: string; +}; + +/** + * Link Component + * + * Render a link. + */ +const Link: FC<LinkProps> = ({ children, href, lang, external = false }) => { +  return external ? ( +    <a +      href={href} +      hrefLang={lang} +      className={`${styles.link} ${styles['link--external']}`} +    > +      {children} +    </a> +  ) : ( +    <NextLink href={href}> +      <a className={styles.link}>{children}</a> +    </NextLink> +  ); +}; + +export default Link; | 
