import React, { useState, useRef, useEffect } from 'react'; interface InfoTooltipProps { text: string; } const InfoTooltip: React.FC = ({ text }) => { const [showTooltip, setShowTooltip] = useState(false); const tooltipRef = useRef(null); const buttonRef = useRef(null); useEffect(() => { const handleClickOutside = (event: MouseEvent) => { if ( tooltipRef.current && !tooltipRef.current.contains(event.target as Node) && buttonRef.current && !buttonRef.current.contains(event.target as Node) ) { setShowTooltip(false); } }; if (showTooltip) { document.addEventListener('mousedown', handleClickOutside); } return () => { document.removeEventListener('mousedown', handleClickOutside); }; }, [showTooltip]); return ( { e.preventDefault(); e.stopPropagation(); setShowTooltip(!showTooltip); }} > {showTooltip && (
{text}
)} ); }; export default InfoTooltip;