import React, { HTMLAttributes, useState } from "react"; export interface TooltipProps { placement?: 'top' | 'right' | 'bottom' | 'left'; tooltip?: string; } const Tooltip: React.FC> = ({ children, placement, tooltip, className, ...props }) => { const [_tooltip, setTooltip] = useState(); const classes = [ 'btn', className, ].filter(Boolean).join(' '); const onMouseEnter = (ev: React.MouseEvent) => { const { onMouseEnter: _onMouseEnter } = props; setTooltip(
{placement === 'top' &&
}
{tooltip}
{placement === 'bottom' &&
}
) if (_onMouseEnter) { return _onMouseEnter(ev); } } const onMouseLeave = (ev: React.MouseEvent) => { const { onMouseLeave: _onMouseLeave } = props; // setTooltip(null); if (_onMouseLeave) { return _onMouseLeave(ev); } } return ( <> {placement === 'top' && _tooltip} {placement === 'bottom' && _tooltip} ) } export default Tooltip;