import { useEffect, useRef } from 'react' import type { GraphNode } from '@/types/api' import { NODE_COLOURS } from './KnowledgeGraph' interface Props { node: GraphNode | null x: number y: number } export function GraphNodeTooltip({ node, x, y }: Props) { const ref = useRef(null) // Clamp position so tooltip never overflows viewport useEffect(() => { if (!ref.current || !node) return const el = ref.current const margin = 12 let left = x + margin let top = y + margin const { width, height } = el.getBoundingClientRect() if (left + width > window.innerWidth - margin) left = x - width - margin if (top + height > window.innerHeight - margin) top = y - height - margin el.style.left = `${left}px` el.style.top = `${top}px` }, [node, x, y]) if (!node) return null const colour = NODE_COLOURS[node.label] ?? '#94a3b8' return (

{node.name}

{node.label}
) }