'use client'; import React, { useRef, useState } from 'react'; type TooltipProps = { children: React.ReactNode; content: React.ReactNode; delay?: number; mobileDelay?: number; }; export default function Tooltip({ children, content, delay = 500, mobileDelay = 500, }: TooltipProps) { const [show, setShow] = useState(false); const [pos, setPos] = useState({ x: 0, y: 0 }); const delayTimeout = useRef(null); const longPressTimeout = useRef(null); const handleMouseEnter = () => { delayTimeout.current = setTimeout(() => setShow(true), delay); }; const handleMouseLeave = () => { if (delayTimeout.current) clearTimeout(delayTimeout.current); setShow(false); }; const handleMouseMove = (e: React.MouseEvent) => { setPos({ x: e.clientX, y: e.clientY }); }; const handleTouchStart = () => { longPressTimeout.current = setTimeout(() => setShow(true), mobileDelay); }; const handleTouchEnd = () => { if (longPressTimeout.current) clearTimeout(longPressTimeout.current); setShow(false); }; return ( <>
{children}
{content}
); }