diff --git a/packages/twenty-front/src/modules/command-menu/pages/workflow/step/view-run/components/CommandMenuWorkflowRunViewStepContent.tsx b/packages/twenty-front/src/modules/command-menu/pages/workflow/step/view-run/components/CommandMenuWorkflowRunViewStepContent.tsx index 915df7bc9..2820a8f76 100644 --- a/packages/twenty-front/src/modules/command-menu/pages/workflow/step/view-run/components/CommandMenuWorkflowRunViewStepContent.tsx +++ b/packages/twenty-front/src/modules/command-menu/pages/workflow/step/view-run/components/CommandMenuWorkflowRunViewStepContent.tsx @@ -1,5 +1,6 @@ import { getIsInputTabDisabled } from '@/command-menu/pages/workflow/step/view-run/utils/getIsInputTabDisabled'; import { getIsOutputTabDisabled } from '@/command-menu/pages/workflow/step/view-run/utils/getIsOutputTabDisabled'; +import { getShouldFocusNodeTab } from '@/command-menu/pages/workflow/step/view-run/utils/getShouldFocusNodeTab'; import { CommandMenuPageComponentInstanceContext } from '@/command-menu/states/contexts/CommandMenuPageComponentInstanceContext'; import { TabList } from '@/ui/layout/tab-list/components/TabList'; import { activeTabIdComponentState } from '@/ui/layout/tab-list/states/activeTabIdComponentState'; @@ -10,6 +11,7 @@ import { useFlowOrThrow } from '@/workflow/hooks/useFlowOrThrow'; import { useWorkflowRun } from '@/workflow/hooks/useWorkflowRun'; import { useWorkflowRunIdOrThrow } from '@/workflow/hooks/useWorkflowRunIdOrThrow'; import { WorkflowStepContextProvider } from '@/workflow/states/context/WorkflowStepContext'; +import { getStepDefinitionOrThrow } from '@/workflow/utils/getStepDefinitionOrThrow'; import { useWorkflowSelectedNodeOrThrow } from '@/workflow/workflow-diagram/hooks/useWorkflowSelectedNodeOrThrow'; import { WorkflowRunStepInputDetail } from '@/workflow/workflow-steps/components/WorkflowRunStepInputDetail'; import { WorkflowRunStepNodeDetail } from '@/workflow/workflow-steps/components/WorkflowRunStepNodeDetail'; @@ -66,7 +68,19 @@ export const CommandMenuWorkflowRunViewStepContent = () => { workflowRunOutput: workflowRun.output, stepId: workflowSelectedNode, }); + const stepDefinition = getStepDefinitionOrThrow({ + stepId: workflowSelectedNode, + trigger: flow.trigger, + steps: flow.steps, + }); + const shouldFocusNodeTab = getShouldFocusNodeTab({ + stepExecutionStatus, + actionType: + stepDefinition?.type === 'action' + ? stepDefinition.definition.type + : undefined, + }); const isInputTabDisabled = getIsInputTabDisabled({ stepExecutionStatus, workflowSelectedNode, @@ -82,7 +96,11 @@ export const CommandMenuWorkflowRunViewStepContent = () => { Icon: IconLogout, disabled: isOutputTabDisabled, }, - { id: WorkflowRunTabId.NODE, title: 'Node', Icon: IconStepInto }, + { + id: WorkflowRunTabId.NODE, + title: 'Node', + Icon: IconStepInto, + }, { id: WorkflowRunTabId.INPUT, title: 'Input', @@ -99,34 +117,45 @@ export const CommandMenuWorkflowRunViewStepContent = () => { }} > - - - {activeTabId === WorkflowRunTabId.OUTPUT ? ( - - ) : null} - - {activeTabId === WorkflowRunTabId.NODE ? ( + {shouldFocusNodeTab ? ( - ) : null} + ) : ( + <> + - {activeTabId === WorkflowRunTabId.INPUT ? ( - - ) : null} + {activeTabId === WorkflowRunTabId.OUTPUT ? ( + + ) : null} + + {activeTabId === WorkflowRunTabId.NODE ? ( + + ) : null} + + {activeTabId === WorkflowRunTabId.INPUT ? ( + + ) : null} + + )} ); diff --git a/packages/twenty-front/src/modules/command-menu/pages/workflow/step/view-run/utils/getShouldFocusNodeTab.ts b/packages/twenty-front/src/modules/command-menu/pages/workflow/step/view-run/utils/getShouldFocusNodeTab.ts new file mode 100644 index 000000000..de70bcfd7 --- /dev/null +++ b/packages/twenty-front/src/modules/command-menu/pages/workflow/step/view-run/utils/getShouldFocusNodeTab.ts @@ -0,0 +1,12 @@ +import { WorkflowActionType } from '@/workflow/types/Workflow'; +import { WorkflowDiagramRunStatus } from '@/workflow/workflow-diagram/types/WorkflowDiagram'; + +export const getShouldFocusNodeTab = ({ + stepExecutionStatus, + actionType, +}: { + stepExecutionStatus: WorkflowDiagramRunStatus; + actionType: WorkflowActionType | undefined; +}) => { + return actionType === 'FORM' && stepExecutionStatus === 'running'; +};