'use client' import ReactFlow, { Node, Edge, Controls, Background, MiniMap, BackgroundVariant, Panel, NodeChange, EdgeChange, } from 'reactflow' import 'reactflow/dist/style.css' import type { ScreenDefinition, FlowType } from '../types' interface FlowDiagramProps { flowType: FlowType nodes: Node[] edges: Edge[] onNodesChange: (changes: NodeChange[]) => void onEdgesChange: (changes: EdgeChange[]) => void onNodeClick: (event: React.MouseEvent, node: Node) => void onPaneClick: () => void screens: ScreenDefinition[] colors: Record labels: Record categories: string[] } export function FlowDiagram({ flowType, nodes, edges, onNodesChange, onEdgesChange, onNodeClick, onPaneClick, screens, colors, labels, categories, }: FlowDiagramProps) { return (
{ const screen = screens.find(s => s.id === node.id) const catColors = screen ? colors[screen.category] : null return catColors?.border || '#94a3b8' }} maskColor="rgba(0, 0, 0, 0.1)" />
{flowType === 'studio' ? '🎓 Studio' : '⚙️ Admin v2'}
{categories.slice(0, 4).map((key) => { const catColors = colors[key] || { bg: '#f1f5f9', border: '#94a3b8' } return (
{labels[key]}
) })}
Klick = Subtree
Doppelklick = Oeffnen
) }