1234567891011121314151617181920212223242526272829303132 |
- import { useDialog } from '@react-aria/dialog';
- import { useOverlay } from '@react-aria/overlays';
- import React, { createRef } from 'react';
- import { VizTooltipContainer } from '@grafana/ui';
- import { ComplexDataHoverView } from './components/ComplexDataHoverView';
- import { GeomapHoverPayload } from './event';
- interface Props {
- ttip?: GeomapHoverPayload;
- isOpen: boolean;
- onClose: () => void;
- }
- export const GeomapTooltip = ({ ttip, onClose, isOpen }: Props) => {
- const ref = createRef<HTMLElement>();
- const { overlayProps } = useOverlay({ onClose, isDismissable: true, isOpen }, ref);
- const { dialogProps } = useDialog({}, ref);
- return (
- <>
- {ttip && ttip.layers && (
- <VizTooltipContainer position={{ x: ttip.pageX, y: ttip.pageY }} offset={{ x: 10, y: 10 }} allowPointerEvents>
- <section ref={ref} {...overlayProps} {...dialogProps}>
- <ComplexDataHoverView layers={ttip.layers} isOpen={isOpen} onClose={onClose} />
- </section>
- </VizTooltipContainer>
- )}
- </>
- );
- };
|