import React, { createRef } from 'react'; import * as PopperJS from 'popper.js'; import Popper from './Popper'; import PopperController, { UsingPopperProps } from './PopperController'; export enum Themes { Default = 'popper__background--default', Error = 'popper__background--error', Brand = 'popper__background--brand', } interface TooltipProps extends UsingPopperProps { theme?: Themes; } export const Tooltip = ({ children, theme, ...controllerProps }: TooltipProps) => { const tooltipTriggerRef = createRef(); const popperBackgroundClassName = 'popper__background' + (theme ? ' ' + theme : ''); return ( {(showPopper, hidePopper, popperProps) => { return ( <> {tooltipTriggerRef.current && ( (
)} /> )} {React.cloneElement(children, { ref: tooltipTriggerRef, onMouseEnter: showPopper, onMouseLeave: hidePopper, })} ); }} ); };