import { memo } from 'react'; import { Handle, Position, type NodeProps } from '@xyflow/react'; import { AlertTriangle, CheckCircle2, XCircle, Shield } from 'lucide-react'; type TransactionNodeData = { label: string; category: string; icon: string; color: string; status?: 'valid' | 'warning' | 'error'; }; const complianceCategories = ['compliance']; const routingCategories = ['routing']; function TransactionNodeComponent({ data, selected }: NodeProps) { const nodeData = data as unknown as TransactionNodeData; const statusIcon = nodeData.status === 'valid' ? : nodeData.status === 'warning' ? : nodeData.status === 'error' ? : null; const isCompliance = complianceCategories.includes(nodeData.category); const isRouting = routingCategories.includes(nodeData.category); return (
{nodeData.icon} {nodeData.label}
{isCompliance && ( )} {isRouting && ( 🔀 )} {statusIcon && {statusIcon}}
{nodeData.category}
); } export default memo(TransactionNodeComponent);