import { memo, useMemo } from 'react'; import { Handle, Position, type NodeProps } from '@xyflow/react'; import { Shield } from 'lucide-react'; export const FirewallNode = memo(({ data, selected }: NodeProps) => { const label = (data as { label?: string }).label ?? 'Firewall'; const meta = useMemo(() => { try { return (data as any).metadata ? JSON.parse((data as any).metadata) : {}; } catch { return {}; } }, [data]); const hasAddress = meta.ipAddress || meta.port; return (
{label}
{hasAddress && (
{meta.ipAddress} {meta.ipAddress && meta.port && ':'} {meta.port}
)}
); }); FirewallNode.displayName = 'FirewallNode';