Skip to content
24 changes: 16 additions & 8 deletions packages/agentflow/src/Agentflow.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,15 @@ function AgentflowCanvas({
renderHeader?: AgentflowProps['renderHeader']
renderNodePalette?: AgentflowProps['renderNodePalette']
}) {
const { state, setNodes, setEdges, setDirty, setReactFlowInstance, closeEditDialog, registerLocalStateSetters } = useAgentflowContext()
const {
state,
syncNodesFromReactFlow,
syncEdgesFromReactFlow,
setDirty,
setReactFlowInstance,
closeEditDialog,
registerLocalStateSetters
} = useAgentflowContext()
const { isDarkMode } = useConfigContext()
const agentflow = useAgentflow()
const reactFlowWrapper = useRef<HTMLDivElement>(null)
Expand Down Expand Up @@ -82,12 +90,12 @@ function AgentflowCanvas({

// Sync local ReactFlow state to context (when user interacts with canvas)
useEffect(() => {
setNodes(nodes as FlowNode[])
}, [nodes, setNodes])
syncNodesFromReactFlow(nodes as FlowNode[])
}, [nodes, syncNodesFromReactFlow])

useEffect(() => {
setEdges(edges as FlowEdge[])
}, [edges, setEdges])
syncEdgesFromReactFlow(edges as FlowEdge[])
}, [edges, syncEdgesFromReactFlow])

// Flow handlers
const { handleConnect, handleNodesChange, handleEdgesChange, handleAddNode } = useFlowHandlers({
Expand Down Expand Up @@ -300,9 +308,9 @@ const AgentflowCanvasWithRef = forwardRef<
{
initialFlow?: FlowData
readOnly?: boolean
onFlowChange?: (flow: FlowData) => void
onSave?: (flow: FlowData) => void
onFlowGenerated?: (flow: FlowData) => void
onFlowChange?: (_flow: FlowData) => void
onSave?: (_flow: FlowData) => void
onFlowGenerated?: (_flow: FlowData) => void
showDefaultHeader?: boolean
showDefaultPalette?: boolean
enableGenerator?: boolean
Expand Down
Loading