import React, { useState, ReactElement } from "react"; import cn from "classnames"; import { Manager, Reference, Popper, PopperProps } from "react-popper"; interface ITooltipProps { reference: ReactElement; tooltip?: ReactElement | ReactElement[] | string; placement: PopperProps["placement"]; ["data-testid"]?: string; } const Tooltip: React.FC = props => { const { reference, tooltip, placement, children } = props; const dataTestId = props["data-testid"] || "honey-ui-tooltip"; const [isShow, setIsShow] = useState(false); return ( {({ ref }) => React.cloneElement(reference, { ref, onMouseEnter: () => setIsShow(true), onMouseLeave: () => setIsShow(false) }) } {({ ref, style, arrowProps, placement: actualPlacement }) => (
{tooltip ?
{tooltip}
: children}
)} ); }; Tooltip.displayName = "Tooltip"; export default Tooltip;