diff --git a/packages/grafana-ui/src/components/Tooltip/Popper.tsx b/packages/grafana-ui/src/components/Tooltip/Popper.tsx index c4b43005038..17955d346b5 100644 --- a/packages/grafana-ui/src/components/Tooltip/Popper.tsx +++ b/packages/grafana-ui/src/components/Tooltip/Popper.tsx @@ -4,13 +4,12 @@ import { Manager, Popper as ReactPopper } from 'react-popper'; import { Portal } from '@grafana/ui'; import Transition from 'react-transition-group/Transition'; - const defaultTransitionStyles = { transition: 'opacity 200ms linear', opacity: 0, }; -const transitionStyles: {[key: string]: object} = { +const transitionStyles: { [key: string]: object } = { exited: { opacity: 0 }, entering: { opacity: 0 }, entered: { opacity: 1 }, @@ -23,12 +22,12 @@ interface Props extends React.HTMLAttributes { placement?: PopperJS.Placement; content: string | ((props: any) => JSX.Element); referenceElement: PopperJS.ReferenceObject; - + arrowClassName?: string; } class Popper extends PureComponent { render() { - const { renderContent, show, placement, onMouseEnter, onMouseLeave, className } = this.props; + const { renderContent, show, placement, onMouseEnter, onMouseLeave, className, arrowClassName } = this.props; const { content } = this.props; return ( @@ -36,7 +35,12 @@ class Popper extends PureComponent { {transitionState => ( - + {({ ref, style, placement, arrowProps }) => { return (
{ >
{renderContent(content)} -
+
); diff --git a/packages/grafana-ui/src/components/Tooltip/PopperController.tsx b/packages/grafana-ui/src/components/Tooltip/PopperController.tsx index 5eadda46188..5cacb5b8cea 100644 --- a/packages/grafana-ui/src/components/Tooltip/PopperController.tsx +++ b/packages/grafana-ui/src/components/Tooltip/PopperController.tsx @@ -70,6 +70,7 @@ class PopperController extends React.Component { }; renderContent(content: PopperContent) { + if (typeof content === 'function') { // If it's a function we assume it's a React component const ReactComponent = content; diff --git a/packages/grafana-ui/src/components/Tooltip/Tooltip.tsx b/packages/grafana-ui/src/components/Tooltip/Tooltip.tsx index 96d29057837..343672721ec 100644 --- a/packages/grafana-ui/src/components/Tooltip/Tooltip.tsx +++ b/packages/grafana-ui/src/components/Tooltip/Tooltip.tsx @@ -28,6 +28,7 @@ export const Tooltip = ({ children, renderContent, theme, ...controllerProps }: onMouseLeave={hidePopper} referenceElement={tooltipTriggerRef.current} className={popperBackgroundClassName} + arrowClassName={'popper__arrow'} /> )} {React.cloneElement(children, {