aboutsummaryrefslogtreecommitdiffstats
path: root/src/components/atoms/links/social-link.tsx
diff options
context:
space:
mode:
authorArmand Philippot <git@armandphilippot.com>2023-10-03 19:36:03 +0200
committerArmand Philippot <git@armandphilippot.com>2023-11-11 18:14:41 +0100
commit0e60743d140aff66eca6df712f653ee20f5d4ef3 (patch)
treee72bc8bf2314a26ba3c8e27e571d72e203bbf0c8 /src/components/atoms/links/social-link.tsx
parenta3fb0aa94717aafae897ac293488c43a099c0b2b (diff)
refactor(components): rewrite SocialLink component
* replace default label with a label prop * rename name prop to icon prop
Diffstat (limited to 'src/components/atoms/links/social-link.tsx')
-rw-r--r--src/components/atoms/links/social-link.tsx51
1 files changed, 0 insertions, 51 deletions
diff --git a/src/components/atoms/links/social-link.tsx b/src/components/atoms/links/social-link.tsx
deleted file mode 100644
index 9f8feb6..0000000
--- a/src/components/atoms/links/social-link.tsx
+++ /dev/null
@@ -1,51 +0,0 @@
-import { FC } from 'react';
-import GithubIcon from '../../../assets/images/social-media/github.svg';
-import GitlabIcon from '../../../assets/images/social-media/gitlab.svg';
-import LinkedInIcon from '../../../assets/images/social-media/linkedin.svg';
-import TwitterIcon from '../../../assets/images/social-media/twitter.svg';
-import styles from './social-link.module.scss';
-
-export type SocialWebsite = 'Github' | 'Gitlab' | 'LinkedIn' | 'Twitter';
-
-export type SocialLinkProps = {
- /**
- * The social website name.
- */
- name: SocialWebsite;
- /**
- * The social profile url.
- */
- url: string;
-};
-
-/**
- * SocialLink component
- *
- * Render a social icon link.
- */
-export const SocialLink: FC<SocialLinkProps> = ({ name, url }) => {
- /**
- * Retrieve a social link icon by id.
- * @param {string} id - The social website id.
- */
- const getIcon = (id: string) => {
- switch (id) {
- case 'Github':
- return <GithubIcon className={styles.icon} aria-hidden="true" />;
- case 'Gitlab':
- return <GitlabIcon className={styles.icon} aria-hidden="true" />;
- case 'LinkedIn':
- return <LinkedInIcon className={styles.icon} aria-hidden="true" />;
- case 'Twitter':
- return <TwitterIcon className={styles.icon} aria-hidden="true" />;
- default:
- break;
- }
- };
-
- return (
- <a aria-label={name} className={styles.link} href={url}>
- {getIcon(name)}
- </a>
- );
-};