'use client' import { useState, useRef, useEffect } from 'react' import { Avatar, AvatarFallback, AvatarImage } from '@/components/ui/avatar' interface UserMenuProps { handle?: string avatar?: string } export function UserMenu({ handle, avatar }: UserMenuProps) { const [open, setOpen] = useState(false) const ref = useRef(null) useEffect(() => { function handleOutsideClick(e: MouseEvent) { if (ref.current && !ref.current.contains(e.target as Node)) { setOpen(false) } } document.addEventListener('mousedown', handleOutsideClick) return () => document.removeEventListener('mousedown', handleOutsideClick) }, []) const initials = handle?.charAt(0).toUpperCase() ?? '?' return (
{open && (
{/* Identity */}

{handle ? `@${handle}` : 'Account'}

{/* Sign out */}
)}
) }