import React, { useState, CSSProperties } from "react"; import "./tooltip-styles.scss"; import { TooltipProps } from "@app/models/components"; const Tooltip: React.FC = ({ text = "", width, gap, children, }) => { const [isVisible, setIsVisible] = useState(false); let hoverTimeout: NodeJS.Timeout; const showTooltip = () => { hoverTimeout = setTimeout(() => { setIsVisible(true); }, 100); }; const hideTooltip = () => { clearTimeout(hoverTimeout); setIsVisible(false); }; const styles: CSSProperties = { ...(width && { width }), ...(gap && { top: `calc(100% + ${gap}px)` }), }; return (
{children} {isVisible && text && (
{text}
)}
); }; export default Tooltip;