MCPcopy Create free account
hub / github.com/FlowiseAI/Flowise / AgentflowCanvas

Function AgentflowCanvas

packages/agentflow/src/Agentflow.tsx:35–380  ·  view source on GitHub ↗

* Internal canvas component that uses the contexts

({
    initialFlow,
    readOnly,
    onFlowChange,
    onSave,
    onFlowGenerated,
    showDefaultHeader = true,
    enableGenerator = true,
    showDefaultPalette = true,
    canvasActions,
    renderHeader,
    renderNodePalette
}: {
    initialFlow?: FlowData
    readOnly?: boolean
    onFlowChange?: FlowDataCallback
    onSave?: FlowDataCallback
    onFlowGenerated?: FlowDataCallback
    showDefaultHeader?: boolean
    showDefaultPalette?: boolean
    enableGenerator?: boolean
    canvasActions?: AgentflowProps['canvasActions']
    renderHeader?: AgentflowProps['renderHeader']
    renderNodePalette?: AgentflowProps['renderNodePalette']
})

Source from the content-addressed store, hash-verified

33 * Internal canvas component that uses the contexts
34 */
35function AgentflowCanvas({
36 initialFlow,
37 readOnly,
38 onFlowChange,
39 onSave,
40 onFlowGenerated,
41 showDefaultHeader = true,
42 enableGenerator = true,
43 showDefaultPalette = true,
44 canvasActions,
45 renderHeader,
46 renderNodePalette
47}: {
48 initialFlow?: FlowData
49 readOnly?: boolean
50 onFlowChange?: FlowDataCallback
51 onSave?: FlowDataCallback
52 onFlowGenerated?: FlowDataCallback
53 showDefaultHeader?: boolean
54 showDefaultPalette?: boolean
55 enableGenerator?: boolean
56 canvasActions?: AgentflowProps['canvasActions']
57 renderHeader?: AgentflowProps['renderHeader']
58 renderNodePalette?: AgentflowProps['renderNodePalette']
59}) {
60 const {
61 state,
62 syncNodesFromReactFlow,
63 syncEdgesFromReactFlow,
64 setDirty,
65 setReactFlowInstance,
66 closeEditDialog,
67 registerLocalStateSetters,
68 registerOnFlowChange,
69 setComponentNodes,
70 syncNodes,
71 hasOutdatedNodes
72 } = useAgentflowContext()
73 const { isDarkMode } = useConfigContext()
74 const agentflow = useAgentflow()
75 const reactFlowWrapper = useRef<HTMLDivElement>(null)
76
77 // Memoize ReactFlow colors from theme tokens
78 const reactFlowColors = useMemo(() => {
79 const mode = isDarkMode ? 'dark' : 'light'
80 return {
81 minimapNode: tokens.colors.reactflow.minimap.node[mode],
82 minimapNodeStroke: tokens.colors.reactflow.minimap.nodeStroke[mode],
83 minimapBackground: tokens.colors.reactflow.minimap.background[mode],
84 minimapMask: tokens.colors.reactflow.minimap.mask[mode],
85 backgroundDots: tokens.colors.reactflow.background.dots[mode]
86 }
87 }, [isDarkMode])
88
89 const safeInitialNodes = Array.isArray(initialFlow?.nodes) ? initialFlow.nodes : []
90 const safeInitialEdges = Array.isArray(initialFlow?.edges) ? initialFlow.edges : []
91 const [nodes, setLocalNodes, onNodesChange] = useNodesState(safeInitialNodes)
92 const [edges, setLocalEdges, onEdgesChange] = useEdgesState(safeInitialEdges)

Callers

nothing calls this directly

Calls 15

useAgentflowContextFunction · 0.90
useConfigContextFunction · 0.90
useAgentflowFunction · 0.90
useNodesStateFunction · 0.90
useEdgesStateFunction · 0.90
useFlowNodesFunction · 0.90
initNodeFunction · 0.90
resolveNodeTypeFunction · 0.90
useFlowHandlersFunction · 0.90
useDragAndDropFunction · 0.90
validateFlowFunction · 0.90

Tested by

no test coverage detected