import ReactDOM from 'react-dom' import { useState, useRef } from 'react' export function AvatarChip({ name, avatarUrl, size = 20 }: { name: string; avatarUrl?: string | null; size?: number }) { const [hover, setHover] = useState(false) const [pos, setPos] = useState({ top: 0, left: 0 }) const ref = useRef(null) const onEnter = () => { if (ref.current) { const rect = ref.current.getBoundingClientRect() setPos({ top: rect.top - 6, left: rect.left + rect.width / 2 }) } setHover(true) } return ( <>
setHover(false)} style={{ width: size, height: size, borderRadius: '50%', border: '1.5px solid var(--border-primary)', background: 'var(--bg-tertiary)', display: 'flex', alignItems: 'center', justifyContent: 'center', fontSize: size * 0.4, fontWeight: 700, color: 'var(--text-muted)', overflow: 'hidden', flexShrink: 0, cursor: 'default', }}> {avatarUrl ? : name?.[0]?.toUpperCase() }
{hover && ReactDOM.createPortal(
{name}
, document.body )} ) }