|
@@ -1,17 +1,24 @@
|
|
|
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 { PopperController, UsingPopperProps } from './PopperController';
|
|
|
|
|
|
|
+import { Popover } from './Popover';
|
|
|
|
|
+import { PopoverController, UsingPopperProps } from './PopoverController';
|
|
|
|
|
|
|
|
export interface TooltipProps extends UsingPopperProps {
|
|
export interface TooltipProps extends UsingPopperProps {
|
|
|
theme?: 'info' | 'error';
|
|
theme?: 'info' | 'error';
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
|
|
+export interface PopoverContentProps {
|
|
|
|
|
+ updatePopperPosition?: () => void;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+export type PopoverContent = string | React.ReactElement<any> | ((props: PopoverContentProps) => JSX.Element);
|
|
|
|
|
+
|
|
|
export const Tooltip = ({ children, theme, ...controllerProps }: TooltipProps) => {
|
|
export const Tooltip = ({ children, theme, ...controllerProps }: TooltipProps) => {
|
|
|
const tooltipTriggerRef = createRef<PopperJS.ReferenceObject>();
|
|
const tooltipTriggerRef = createRef<PopperJS.ReferenceObject>();
|
|
|
const popperBackgroundClassName = 'popper__background' + (theme ? ' popper__background--' + theme : '');
|
|
const popperBackgroundClassName = 'popper__background' + (theme ? ' popper__background--' + theme : '');
|
|
|
|
|
|
|
|
return (
|
|
return (
|
|
|
- <PopperController {...controllerProps}>
|
|
|
|
|
|
|
+ <PopoverController {...controllerProps}>
|
|
|
{(showPopper, hidePopper, popperProps) => {
|
|
{(showPopper, hidePopper, popperProps) => {
|
|
|
{
|
|
{
|
|
|
/* Override internal 'show' state if passed in as prop */
|
|
/* Override internal 'show' state if passed in as prop */
|
|
@@ -23,7 +30,7 @@ export const Tooltip = ({ children, theme, ...controllerProps }: TooltipProps) =
|
|
|
return (
|
|
return (
|
|
|
<>
|
|
<>
|
|
|
{tooltipTriggerRef.current && (
|
|
{tooltipTriggerRef.current && (
|
|
|
- <Popper
|
|
|
|
|
|
|
+ <Popover
|
|
|
{...payloadProps}
|
|
{...payloadProps}
|
|
|
onMouseEnter={showPopper}
|
|
onMouseEnter={showPopper}
|
|
|
onMouseLeave={hidePopper}
|
|
onMouseLeave={hidePopper}
|
|
@@ -43,6 +50,6 @@ export const Tooltip = ({ children, theme, ...controllerProps }: TooltipProps) =
|
|
|
</>
|
|
</>
|
|
|
);
|
|
);
|
|
|
}}
|
|
}}
|
|
|
- </PopperController>
|
|
|
|
|
|
|
+ </PopoverController>
|
|
|
);
|
|
);
|
|
|
};
|
|
};
|