import { useState, memo } from 'react'; import { useFloating, flip, offset, shift } from '@floating-ui/react-dom'; import './tooltip.scss'; function Tooltip({ children, title, style, placement, subtitle }) { const [showTooltip, setShowTooltip] = useState(false); const { x, y, reference, floating, strategy } = useFloating({ placement: placement || 'bottom', middleware: [flip(), offset(15), shift()], }); return (
setShowTooltip(true)} onMouseLeave={() => setShowTooltip(false)} onFocus={() => setShowTooltip(true)} onBlur={() => setShowTooltip(false)} ref={reference} > {children} {showTooltip && ( {title} {subtitle} )}
); } export default memo(Tooltip);