import { Facebook, Github, Instagram, JueJin, Linkedin, Mail, Mastodon, Threads, Twitter, TwitterX, WeChat, Youtube } from './icons' const components = { mail: Mail, github: Github, facebook: Facebook, youtube: Youtube, linkedin: Linkedin, twitter: Twitter, twitterX: TwitterX, weChat: WeChat, jueJin: JueJin, mastodon: Mastodon, threads: Threads, instagram: Instagram } 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