aboutsummaryrefslogtreecommitdiffstats
path: root/src/components/Buttons/ButtonLink
diff options
context:
space:
mode:
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;