import { Mail, Github, Facebook, Youtube, Linkedin, Twitter, Mastodon, } from './icons'; const components = { mail: Mail, github: Github, facebook: Facebook, youtube: Youtube, linkedin: Linkedin, twitter: Twitter, mastodon: Mastodon, }; type SocialIconProps = { kind: keyof typeof components; href: string | undefined; size?: number; }; const SocialIcon = ({ kind, href, size = 8 }: SocialIconProps) => { if ( !href || (kind === 'mail' && !/^mailto:\w+([.-]?\w+)@\w+([.-]?\w+)(.\w{2,3})+$/.test(href)) ) return null; const SocialSvg = components[kind]; return ( {kind} ); }; export default SocialIcon;