umami/src/components/common/HoverTooltip.tsx

28 lines
706 B
TypeScript
Raw Normal View History

2023-11-14 06:36:52 +01:00
import { ReactNode, useEffect, useState } from 'react';
import { Tooltip } from 'react-basics';
import styles from './HoverTooltip.module.css';
2023-11-14 06:36:52 +01:00
export function HoverTooltip({ children }: { children: ReactNode }) {
const [position, setPosition] = useState({ x: -1000, y: -1000 });
useEffect(() => {
const handler = e => {
setPosition({ x: e.clientX, y: e.clientY });
};
document.addEventListener('mousemove', handler);
return () => {
document.removeEventListener('mousemove', handler);
};
}, []);
return (
2023-06-16 05:15:31 +02:00
<Tooltip className={styles.tooltip} style={{ left: position.x, top: position.y }}>
{children}
</Tooltip>
);
}
2023-04-21 17:00:42 +02:00
export default HoverTooltip;