From 7fffd5153532cbabd8af64e86bb71b847941aea9 Mon Sep 17 00:00:00 2001 From: yyh <92089059+lyzno1@users.noreply.github.com> Date: Tue, 11 Aug 2026 15:36:21 +0800 Subject: [PATCH] fix(web): preserve workflow canvas after history updates (#40489) --- .../workflow/__tests__/index.spec.tsx | 44 ++++++++++++++++--- web/app/components/workflow/index.tsx | 3 -- 2 files changed, 39 insertions(+), 8 deletions(-) diff --git a/web/app/components/workflow/__tests__/index.spec.tsx b/web/app/components/workflow/__tests__/index.spec.tsx index f7f0108be7a..3f5dc907e8c 100644 --- a/web/app/components/workflow/__tests__/index.spec.tsx +++ b/web/app/components/workflow/__tests__/index.spec.tsx @@ -1,9 +1,11 @@ import type { Edge, Node } from '../types' import { render, screen } from '@testing-library/react' +import userEvent from '@testing-library/user-event' import { useStoreApi } from 'reactflow' import { WorkflowContextProvider } from '../context' import { useDatasetsDetailStore } from '../datasets-detail-store/store' import WorkflowWithDefaultContext from '../index' +import { useStore } from '../store' import { BlockEnum } from '../types' import { useWorkflowHistoryStore } from '../workflow-history-store' @@ -37,15 +39,32 @@ const edges: Edge[] = [ const ContextConsumer = () => { const { store } = useWorkflowHistoryStore() + const historyNodeCount = useStore((state) => state.workflowHistory.nodes.length) const datasetCount = useDatasetsDetailStore((state) => Object.keys(state.datasetsDetail).length) const reactFlowStore = useStoreApi() + const advanceWorkflowHistory = () => { + const currentHistory = store.getState() + store.setState({ + ...currentHistory, + nodes: [ + ...currentHistory.nodes, + { + ...nodes[0]!, + id: 'node-next', + }, + ], + }) + } return ( -