diff options
Diffstat (limited to 'components/Social/Social.tsx')
| -rw-r--r-- | components/Social/Social.tsx | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/components/Social/Social.tsx b/components/Social/Social.tsx new file mode 100644 index 0000000..f663f6e --- /dev/null +++ b/components/Social/Social.tsx @@ -0,0 +1,45 @@ +import styles from "./Social.module.css"; + +export type SocialType = "telegram" | "linkedin" | "github"; + +interface Props { + type: SocialType; +} + +interface TypeItem { + alt: string; + src: string; + href: string; +} + +const typeMap: Record<SocialType, TypeItem> = { + telegram: { + alt: "Telegram", + src: "/social/telegram.svg", + href: "https://t.me/kal_jan", + }, + linkedin: { + alt: "LinkedIn", + src: "/social/linkedin.svg", + href: "https://www.linkedin.com/in/jantuomi/", + }, + github: { + alt: "GitHub", + src: "/social/github.svg", + href: "http://github.com/jantuomi" + }, +}; + +const Social = ({ type }: Props): JSX.Element => { + const typeItem = typeMap[type]; + + return ( + <a className={styles.social} target="blank" rel="noopener noreferrer" href={typeItem.href}> + <img src={typeItem.src} alt={typeItem.alt} /> + </a> + ); +}; + + + +export default Social; |
