|
@@ -1,10 +1,9 @@
|
|
|
import React, { createRef } from 'react';
|
|
import React, { createRef } from 'react';
|
|
|
import * as PopperJS from 'popper.js';
|
|
import * as PopperJS from 'popper.js';
|
|
|
-
|
|
|
|
|
import Popper from './Popper';
|
|
import Popper from './Popper';
|
|
|
import PopperController, { UsingPopperProps } from './PopperController';
|
|
import PopperController, { UsingPopperProps } from './PopperController';
|
|
|
|
|
|
|
|
-const Tooltip = ({ children, renderContent, ...controllerProps }: UsingPopperProps) => {
|
|
|
|
|
|
|
+export const Tooltip = ({ children, renderContent, ...controllerProps }: UsingPopperProps) => {
|
|
|
const tooltipTriggerRef = createRef<PopperJS.ReferenceObject>();
|
|
const tooltipTriggerRef = createRef<PopperJS.ReferenceObject>();
|
|
|
|
|
|
|
|
return (
|
|
return (
|
|
@@ -12,12 +11,14 @@ const Tooltip = ({ children, renderContent, ...controllerProps }: UsingPopperPro
|
|
|
{(showPopper, hidePopper, popperProps) => {
|
|
{(showPopper, hidePopper, popperProps) => {
|
|
|
return (
|
|
return (
|
|
|
<>
|
|
<>
|
|
|
- <Popper
|
|
|
|
|
- {...popperProps}
|
|
|
|
|
- onMouseEnter={showPopper}
|
|
|
|
|
- onMouseLeave={hidePopper}
|
|
|
|
|
- referenceElement={tooltipTriggerRef.current}
|
|
|
|
|
- />
|
|
|
|
|
|
|
+ {tooltipTriggerRef.current && (
|
|
|
|
|
+ <Popper
|
|
|
|
|
+ {...popperProps}
|
|
|
|
|
+ onMouseEnter={showPopper}
|
|
|
|
|
+ onMouseLeave={hidePopper}
|
|
|
|
|
+ referenceElement={tooltipTriggerRef.current}
|
|
|
|
|
+ />
|
|
|
|
|
+ )}
|
|
|
{React.cloneElement(children, {
|
|
{React.cloneElement(children, {
|
|
|
ref: tooltipTriggerRef,
|
|
ref: tooltipTriggerRef,
|
|
|
onMouseEnter: showPopper,
|
|
onMouseEnter: showPopper,
|
|
@@ -29,5 +30,3 @@ const Tooltip = ({ children, renderContent, ...controllerProps }: UsingPopperPro
|
|
|
</PopperController>
|
|
</PopperController>
|
|
|
);
|
|
);
|
|
|
};
|
|
};
|
|
|
-
|
|
|
|
|
-export default Tooltip;
|
|
|