import { USER } from '@/fragments/users' import errorStyles from '@/styles/error.module.css' import { useLazyQuery } from '@apollo/client' import Link from 'next/link' import { useRef, useState } from 'react' import { Popover } from 'react-bootstrap' import OverlayTrigger from 'react-bootstrap/OverlayTrigger' import { UserBase, UserSkeleton } from './user-list' import styles from './user-popover.module.css' import classNames from 'classnames' function StackingSince ({ since }) { return ( stacking since:{' '} {since ? #{since} : never} ) } export default function UserPopover ({ name, children }) { const [showOverlay, setShowOverlay] = useState(false) const [getUser, { loading, data }] = useLazyQuery( USER, { variables: { name }, fetchPolicy: 'cache-first' } ) const timeoutId = useRef(null) const handleMouseEnter = () => { clearTimeout(timeoutId.current) getUser() timeoutId.current = setTimeout(() => { setShowOverlay(true) }, 500) } const handleMouseLeave = () => { clearTimeout(timeoutId.current) timeoutId.current = setTimeout(() => setShowOverlay(false), 100) } return ( {!data || loading ? : !data.user ?

USER NOT FOUND

: ( )}
} > {children}
) }