import type { SocialLink as ISocialLink } from '@rspress/core'; import iconMap from 'virtual-social-links'; import './index.scss'; import { GithubStars } from './GithubStars'; import { useHoverGroup } from '../HoverGroup/useHoverGroup'; interface SocialLinkProps { link: ISocialLink; /** * @default 'center' */ hoverGroupPosition?: 'center' | 'left' | 'right'; } export const SocialLink = (props: SocialLinkProps) => { const { link, hoverGroupPosition = 'center' } = props; const { icon, mode = 'link', content } = link; let IconComp: React.ReactElement = <>>; if (icon) { const html = typeof icon === 'string' ? iconMap[icon] : icon.svg; IconComp = (
); } const { handleMouseEnter, handleMouseLeave, hoverGroup } = useHoverGroup({ position: hoverGroupPosition, customChildren: (