diff --git a/web/app/components/workflow/index.tsx b/web/app/components/workflow/index.tsx index 79b01f82b8..a98bf24124 100644 --- a/web/app/components/workflow/index.tsx +++ b/web/app/components/workflow/index.tsx @@ -17,6 +17,7 @@ import ReactFlow, { useEdgesState, useNodesState, useOnViewportChange, + useReactFlow, } from 'reactflow' import type { Viewport } from 'reactflow' import 'reactflow/dist/style.css' @@ -71,6 +72,7 @@ const Workflow: FC = memo(({ edges: originalEdges, viewport, }) => { + const reactflow = useReactFlow() const [nodes, setNodes] = useNodesState(originalNodes) const [edges, setEdges] = useEdgesState(originalEdges) const showFeaturesPanel = useStore(state => state.showFeaturesPanel) @@ -91,6 +93,17 @@ const Workflow: FC = memo(({ } }) + useEffect(() => { + setNodes(originalNodes) + }, [originalNodes, setNodes]) + useEffect(() => { + setEdges(originalEdges) + }, [originalEdges, setEdges]) + useEffect(() => { + if (viewport) + reactflow.setViewport(viewport) + }, [reactflow, viewport]) + useEffect(() => { setAutoFreeze(false)