diff --git a/web/app/components/workflow/nodes/_base/hooks/use-one-step-run.ts b/web/app/components/workflow/nodes/_base/hooks/use-one-step-run.ts index ec2ce217b1..a3ffcbcc1f 100644 --- a/web/app/components/workflow/nodes/_base/hooks/use-one-step-run.ts +++ b/web/app/components/workflow/nodes/_base/hooks/use-one-step-run.ts @@ -12,6 +12,7 @@ import { getNodeInfoById, isSystemVar, toNodeOutputVars } from '@/app/components import type { CommonNodeType, InputVar, ValueSelector, Var, Variable } from '@/app/components/workflow/types' import { BlockEnum, InputVarType, NodeRunningStatus, VarType } from '@/app/components/workflow/types' import { useStore as useAppStore } from '@/app/components/app/store' +import { useWorkflowStore } from '@/app/components/workflow/store' import { getIterationSingleNodeRunUrl, singleNodeRun } from '@/service/workflow' import Toast from '@/app/components/base/toast' import LLMDefault from '@/app/components/workflow/nodes/llm/default' @@ -164,6 +165,12 @@ const useOneStepRun = ({ } // eslint-disable-next-line react-hooks/exhaustive-deps }, [data._isSingleRun]) + + const workflowStore = useWorkflowStore() + useEffect(() => { + workflowStore.getState().setShowSingleRunPanel(!!isShowSingleRun) + }, [isShowSingleRun]) + const hideSingleRun = () => { handleNodeDataUpdate({ id, diff --git a/web/app/components/workflow/nodes/_base/panel.tsx b/web/app/components/workflow/nodes/_base/panel.tsx index 05b65ee518..1750ce1a1b 100644 --- a/web/app/components/workflow/nodes/_base/panel.tsx +++ b/web/app/components/workflow/nodes/_base/panel.tsx @@ -36,6 +36,7 @@ import { canRunBySingle } from '@/app/components/workflow/utils' import TooltipPlus from '@/app/components/base/tooltip-plus' import type { Node } from '@/app/components/workflow/types' import { useStore as useAppStore } from '@/app/components/app/store' +import { useStore } from '@/app/components/workflow/store' type BasePanelProps = { children: ReactElement @@ -50,6 +51,7 @@ const BasePanel: FC = ({ const { showMessageLogModal } = useAppStore(useShallow(state => ({ showMessageLogModal: state.showMessageLogModal, }))) + const showSingleRunPanel = useStore(s => s.showSingleRunPanel) const panelWidth = localStorage.getItem('workflow-node-panel-width') ? parseFloat(localStorage.getItem('workflow-node-panel-width')!) : 420 const { setPanelWidth, @@ -99,7 +101,7 @@ const BasePanel: FC = ({
void workflowRunningData?: PreviewRunningData setWorkflowRunningData: (workflowData: PreviewRunningData) => void historyWorkflowData?: HistoryWorkflowData @@ -137,6 +139,8 @@ export const createWorkflowStore = () => { return createStore(set => ({ appId: '', panelWidth: localStorage.getItem('workflow-node-panel-width') ? parseFloat(localStorage.getItem('workflow-node-panel-width')!) : 420, + showSingleRunPanel: false, + setShowSingleRunPanel: showSingleRunPanel => set(() => ({ showSingleRunPanel })), workflowRunningData: undefined, setWorkflowRunningData: workflowRunningData => set(() => ({ workflowRunningData })), historyWorkflowData: undefined,