From c901de905431011f3397247df144f8b1a28118d5 Mon Sep 17 00:00:00 2001 From: Joel Date: Tue, 17 Jun 2025 15:35:46 +0800 Subject: [PATCH] feat: in var inspect jump to last run tab --- .../workflow/hooks/use-nodes-interactions.ts | 4 +++- .../workflow-panel/last-run/use-last-run.ts | 14 ++++++++++++-- .../workflow/store/workflow/panel-slice.ts | 4 ++++ .../components/workflow/variable-inspect/left.tsx | 2 +- 4 files changed, 20 insertions(+), 4 deletions(-) diff --git a/web/app/components/workflow/hooks/use-nodes-interactions.ts b/web/app/components/workflow/hooks/use-nodes-interactions.ts index b1667706da..b598951adb 100644 --- a/web/app/components/workflow/hooks/use-nodes-interactions.ts +++ b/web/app/components/workflow/hooks/use-nodes-interactions.ts @@ -289,7 +289,9 @@ export const useNodesInteractions = () => { setEdges(newEdges) }, [store, workflowStore, getNodesReadOnly]) - const handleNodeSelect = useCallback((nodeId: string, cancelSelection?: boolean) => { + const handleNodeSelect = useCallback((nodeId: string, cancelSelection?: boolean, initShowLastRunTab?: boolean) => { + if(initShowLastRunTab) + workflowStore.setState({ initShowLastRunTab: true }) const { getNodes, setNodes, diff --git a/web/app/components/workflow/nodes/_base/components/workflow-panel/last-run/use-last-run.ts b/web/app/components/workflow/nodes/_base/components/workflow-panel/last-run/use-last-run.ts index bda10724ed..59b8ee6509 100644 --- a/web/app/components/workflow/nodes/_base/components/workflow-panel/last-run/use-last-run.ts +++ b/web/app/components/workflow/nodes/_base/components/workflow-panel/last-run/use-last-run.ts @@ -1,6 +1,6 @@ import useOneStepRun from '@/app/components/workflow/nodes/_base/hooks/use-one-step-run' import type { Params as OneStepRunParams } from '@/app/components/workflow/nodes/_base/hooks/use-one-step-run' -import { useCallback, useState } from 'react' +import { useCallback, useEffect, useState } from 'react' import { TabType } from '../tab' import type { Props as FormProps } from '@/app/components/workflow/nodes/_base/components/before-run-form/form' import useStartSingleRunFormParams from '@/app/components/workflow/nodes/start/use-single-run-form-params' @@ -31,6 +31,7 @@ import { } from '@/app/components/workflow/hooks' import useInspectVarsCrud from '@/app/components/workflow/hooks/use-inspect-vars-crud' import { useInvalidLastRun } from '@/service/use-workflow' +import { useStore, useWorkflowStore } from '@/app/components/workflow/store' const singleRunFormParamsHooks: Record = { [BlockEnum.LLM]: useLLMSingleRunFormParams, @@ -185,8 +186,17 @@ const useLastRun = ({ }, }) } + const workflowStore = useWorkflowStore() + const { setInitShowLastRunTab } = workflowStore.getState() + const initShowLastRunTab = useStore(s => s.initShowLastRunTab) + const [tabType, setTabType] = useState(initShowLastRunTab ? TabType.lastRun : TabType.settings) + useEffect(() => { + if(initShowLastRunTab) + setTabType(TabType.lastRun) - const [tabType, setTabType] = useState(TabType.settings) + setInitShowLastRunTab(false) + // eslint-disable-next-line react-hooks/exhaustive-deps + }, [initShowLastRunTab]) const invalidLastRun = useInvalidLastRun(appId!, id) const handleRunWithParams = async (data: Record) => { diff --git a/web/app/components/workflow/store/workflow/panel-slice.ts b/web/app/components/workflow/store/workflow/panel-slice.ts index f4e62a58a7..855f45f264 100644 --- a/web/app/components/workflow/store/workflow/panel-slice.ts +++ b/web/app/components/workflow/store/workflow/panel-slice.ts @@ -17,6 +17,8 @@ export type PanelSliceShape = { setPanelMenu: (panelMenu: PanelSliceShape['panelMenu']) => void showVariableInspectPanel: boolean setShowVariableInspectPanel: (showVariableInspectPanel: boolean) => void + initShowLastRunTab: boolean + setInitShowLastRunTab: (initShowLastRunTab: boolean) => void } export const createPanelSlice: StateCreator = set => ({ @@ -33,4 +35,6 @@ export const createPanelSlice: StateCreator = set => ({ setPanelMenu: panelMenu => set(() => ({ panelMenu })), showVariableInspectPanel: false, setShowVariableInspectPanel: showVariableInspectPanel => set(() => ({ showVariableInspectPanel })), + initShowLastRunTab: false, + setInitShowLastRunTab: initShowLastRunTab => set(() => ({ initShowLastRunTab })), }) diff --git a/web/app/components/workflow/variable-inspect/left.tsx b/web/app/components/workflow/variable-inspect/left.tsx index 6f795add46..ecc5836781 100644 --- a/web/app/components/workflow/variable-inspect/left.tsx +++ b/web/app/components/workflow/variable-inspect/left.tsx @@ -99,7 +99,7 @@ const Left = ({ nodeData={group} currentVar={currentNodeVar} handleSelect={handleVarSelect} - handleView={() => handleNodeSelect(group.nodeId)} + handleView={() => handleNodeSelect(group.nodeId, false, true)} handleClear={() => handleClearNode(group.nodeId)} /> ))}