mirror of https://github.com/portainer/portainer
43 lines
908 B
TypeScript
43 lines
908 B
TypeScript
import Tippy from '@tippyjs/react';
|
|
import clsx from 'clsx';
|
|
|
|
import 'tippy.js/dist/tippy.css';
|
|
|
|
import styles from './SliderTooltip.module.css';
|
|
|
|
export interface Props {
|
|
value: string;
|
|
child: React.ReactElement;
|
|
delay: number;
|
|
zIndex?: number;
|
|
}
|
|
|
|
export function SliderTooltip({ value, child, delay, zIndex = 50 }: Props) {
|
|
return (
|
|
<Tippy
|
|
appendTo="parent"
|
|
zIndex={zIndex} // make the z index lower than the dialog
|
|
className={clsx(styles.tooltipCentered, styles.tooltip)}
|
|
content={messageHTML(value)}
|
|
placement="top"
|
|
showOnCreate
|
|
hideOnClick={false}
|
|
trigger="manual"
|
|
delay={delay}
|
|
arrow
|
|
allowHTML
|
|
>
|
|
{child}
|
|
</Tippy>
|
|
);
|
|
}
|
|
|
|
function messageHTML(value: string) {
|
|
let message = value;
|
|
if (message === '0') {
|
|
message = 'unlimited';
|
|
}
|
|
|
|
return <div className={styles.tooltipContainer}>{message}</div>;
|
|
}
|