summaryrefslogtreecommitdiffstats
path: root/src/components/Buttons/ButtonLink
diff options
context:
space:
mode:
authorArmand Philippot <git@armandphilippot.com>2021-12-29 17:01:42 +0100
committerArmand Philippot <git@armandphilippot.com>2021-12-29 17:50:45 +0100
commit76c01d51ccbdd0faaf12b624328a40ef24f33f88 (patch)
tree3cad2a35955e7e90806cc5180554e33f5cde43f1 /src/components/Buttons/ButtonLink
parent395571bd89498fce46d37f3853cf718387fd0d9a (diff)
chore: add a button-like component for links
Diffstat (limited to 'src/components/Buttons/ButtonLink')
-rw-r--r--src/components/Buttons/ButtonLink/ButtonLink.tsx30
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;