import { type MouseEventHandler, type PropsWithChildren, useEffect, useState, } from 'react' import { InfoIcon } from 'lib/icons/Info.js' import { InfoDarkIcon } from 'lib/icons/InfoDark.js' export function Tooltip({ children }: PropsWithChildren): JSX.Element { const [isOpen, setIsOpen] = useState(false) useEffect(() => { const handleClose = (): void => { setIsOpen(false) } const handleEscape = (event: KeyboardEvent): void => { if (event.key === 'Escape') { handleClose() } } if (isOpen) { globalThis.document?.addEventListener('click', handleClose) globalThis.addEventListener?.('keydown', handleEscape) } return () => { globalThis.document?.removeEventListener('click', handleClose) globalThis.removeEventListener?.('keydown', handleEscape) } }, [isOpen, setIsOpen]) const handleToggle: MouseEventHandler = (event): void => { event.stopPropagation() setIsOpen((prev) => !prev) } return (
{ event.stopPropagation() }} >

{children}

) }