'use client'; import React, { ReactNode, useState, useEffect, useRef } from 'react'; interface TooltipProps { children: ReactNode; content: string; } export function Tooltip({ children, content }: TooltipProps) { const [isActive, setIsActive] = useState(false); const containerRef = useRef(null); useEffect(() => { const handleClickOutside = (event: MouseEvent | TouchEvent) => { if (containerRef.current && !containerRef.current.contains(event.target as Node)) { setIsActive(false); } }; document.addEventListener('mousedown', handleClickOutside); document.addEventListener('touchstart', handleClickOutside); return () => { document.removeEventListener('mousedown', handleClickOutside); document.removeEventListener('touchstart', handleClickOutside); }; }, []); return (
setIsActive(!isActive)} onMouseEnter={() => setIsActive(true)} onMouseLeave={() => setIsActive(false)} > {children}
{content} {/* Triangle Arrow */}
); }