diff options
| author | Armand Philippot <git@armandphilippot.com> | 2021-12-29 17:01:42 +0100 |
|---|---|---|
| committer | Armand Philippot <git@armandphilippot.com> | 2021-12-29 17:50:45 +0100 |
| commit | 76c01d51ccbdd0faaf12b624328a40ef24f33f88 (patch) | |
| tree | 3cad2a35955e7e90806cc5180554e33f5cde43f1 /src/components/Buttons/ButtonLink/ButtonLink.tsx | |
| parent | 395571bd89498fce46d37f3853cf718387fd0d9a (diff) | |
chore: add a button-like component for links
Diffstat (limited to 'src/components/Buttons/ButtonLink/ButtonLink.tsx')
| -rw-r--r-- | src/components/Buttons/ButtonLink/ButtonLink.tsx | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/src/components/Buttons/ButtonLink/ButtonLink.tsx b/src/components/Buttons/ButtonLink/ButtonLink.tsx new file mode 100644 index 0000000..70039a8 --- /dev/null +++ b/src/components/Buttons/ButtonLink/ButtonLink.tsx @@ -0,0 +1,30 @@ +import { ButtonPosition } from '@ts/types/app'; +import Link from 'next/link'; +import { ReactNode } from 'react'; +import styles from '../Buttons.module.scss'; + +const ButtonLink = ({ + children, + target, + position = 'left', + isExternal = false, +}: { + children: ReactNode; + target: string; + position?: ButtonPosition; + isExternal?: boolean; +}) => { + const classes = `${styles.btn} ${styles.link} ${styles[`link--${position}`]}`; + + return isExternal ? ( + <a className={classes} href={target}> + {children} + </a> + ) : ( + <Link href={target}> + <a className={classes}>{children}</a> + </Link> + ); +}; + +export default ButtonLink; |
