import React, { createContext, CSSProperties, ReactNode, useContext, } from 'react' import { Portal } from './Portal' const TooltipParentContext = createContext(null) export const TooltipParentProvider = TooltipParentContext.Provider export function useTooltipParent() { const tooltipParent = useContext(TooltipParentContext) if (!tooltipParent) throw Error('use Svg component') return tooltipParent } export type TooltipAnchor = 'start' | 'center' | 'end' export interface TooltipProps { x: number y: number horizontalAnchor?: TooltipAnchor verticalAnchor?: TooltipAnchor children?: ReactNode style?: CSSProperties horizontalSpacing?: number verticalSpacing?: number } const ANCHOR_OFFSET: Record = { start: '', center: '- 50%', end: '- 100%', } export function Tooltip({ x, y, children = null, style = {}, horizontalAnchor = 'start', verticalAnchor = 'start', horizontalSpacing = 0, verticalSpacing = 0, }: TooltipProps) { const parent = useTooltipParent() return (
{children}
) }