"use client"; import { memo } from 'react'; import { Handle, Position, type NodeProps, type Node } from '@xyflow/react'; import type { RahNodeData } from './utils'; import { getNodeIcon } from '@/utils/nodeIcons'; type RahNodeType = Node; function RahNodeComponent({ data, selected }: NodeProps) { const { label, dbNode, role, prominence } = data; const isSelected = selected || role === 'selected'; const sizeScale = role === 'selected' ? 1.08 : role === 'first-hop' ? 1.02 + prominence * 0.06 : 0.92 + prominence * 0.12; const strongNode = prominence > 0.72 && role === 'overview'; return (
{getNodeIcon(dbNode, 14)} {label.length > 26 ? label.slice(0, 24) + '\u2026' : label}
); } export const RahNode = memo(RahNodeComponent);