From 3876cb8250ca34dcd2e67865d4287cc4650c4a81 Mon Sep 17 00:00:00 2001 From: Thomas Trompette Date: Thu, 20 Mar 2025 17:22:55 +0100 Subject: [PATCH] Separate workflow step details and run step details (#11069) Workflows step details in workflows and versions should be different from the node tab in run. For most cases, it was using the same component. But for forms, it will be a different one. This PR: - renames form action into formBuilder. formFiller is coming - put code into a separated folder - creates a new component for node details --- ...ommandMenuCloseAnimationCompleteCleanup.ts | 4 +- .../CommandMenuWorkflowRunViewStep.tsx | 5 +- .../getDefaultFunctionInputFromInputSchema.ts | 2 +- .../utils/getFunctionInputFromSourceCode.ts | 2 +- ...rgeDefaultFunctionInputAndFunctionInput.ts | 2 +- .../RightDrawerWorkflowViewStep.tsx | 22 --- .../components/WorkflowRunStepNodeDetail.tsx | 175 ++++++++++++++++++ .../components/WorkflowStepDetail.tsx | 44 +---- .../WorkflowActionServerlessFunction.tsx | 49 +++++ .../WorkflowEditActionServerlessFunction.tsx | 10 +- ...flowEditActionServerlessFunctionFields.tsx | 2 +- ...rkflowReadonlyActionServerlessFunction.tsx | 4 +- ...lowServerlessFunctionTabListComponentId.ts | 0 .../{ => code-action}/types/FunctionInput.ts | 0 .../types/WorkflowServerlessFunctionTabId.ts | 0 .../getWrongExportedFunctionMarkers.test.ts | 2 +- .../utils/__tests__/setNestedValue.test.ts | 2 +- .../utils/getWrongExportedFunctionMarkers.ts | 0 .../{ => code-action}/utils/setNestedValue.ts | 0 ....tsx => WorkflowEditActionFormBuilder.tsx} | 6 +- .../WorkflowEditActionFormFieldSettings.tsx | 2 +- .../WorkflowFormFieldSettingsByType.tsx | 2 +- ...WorkflowEditActionFormBuilder.stories.tsx} | 10 +- 23 files changed, 260 insertions(+), 85 deletions(-) delete mode 100644 packages/twenty-front/src/modules/workflow/workflow-steps/components/RightDrawerWorkflowViewStep.tsx create mode 100644 packages/twenty-front/src/modules/workflow/workflow-steps/components/WorkflowRunStepNodeDetail.tsx create mode 100644 packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/code-action/components/WorkflowActionServerlessFunction.tsx rename packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/{ => code-action}/components/WorkflowEditActionServerlessFunction.tsx (96%) rename packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/{ => code-action}/components/WorkflowEditActionServerlessFunctionFields.tsx (98%) rename packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/{ => code-action}/components/WorkflowReadonlyActionServerlessFunction.tsx (94%) rename packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/{ => code-action}/constants/WorkflowServerlessFunctionTabListComponentId.ts (100%) rename packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/{ => code-action}/types/FunctionInput.ts (100%) rename packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/{ => code-action}/types/WorkflowServerlessFunctionTabId.ts (100%) rename packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/{ => code-action}/utils/__tests__/getWrongExportedFunctionMarkers.test.ts (93%) rename packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/{ => code-action}/utils/__tests__/setNestedValue.test.ts (94%) rename packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/{ => code-action}/utils/getWrongExportedFunctionMarkers.ts (100%) rename packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/{ => code-action}/utils/setNestedValue.ts (100%) rename packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/form-action/components/{WorkflowEditActionForm.tsx => WorkflowEditActionFormBuilder.tsx} (98%) rename packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/form-action/components/__stories__/{WorkflowEditActionForm.stories.tsx => WorkflowEditActionFormBuilder.stories.tsx} (85%) diff --git a/packages/twenty-front/src/modules/command-menu/hooks/useCommandMenuCloseAnimationCompleteCleanup.ts b/packages/twenty-front/src/modules/command-menu/hooks/useCommandMenuCloseAnimationCompleteCleanup.ts index c8ec230ba..66fe24d20 100644 --- a/packages/twenty-front/src/modules/command-menu/hooks/useCommandMenuCloseAnimationCompleteCleanup.ts +++ b/packages/twenty-front/src/modules/command-menu/hooks/useCommandMenuCloseAnimationCompleteCleanup.ts @@ -21,8 +21,8 @@ import { activeTabIdComponentState } from '@/ui/layout/tab/states/activeTabIdCom import { usePreviousHotkeyScope } from '@/ui/utilities/hotkey/hooks/usePreviousHotkeyScope'; import { WORKFLOW_RUN_STEP_SIDE_PANEL_TAB_LIST_COMPONENT_ID } from '@/workflow/workflow-steps/constants/WorkflowRunStepSidePanelTabListComponentId'; import { WorkflowRunTabId } from '@/workflow/workflow-steps/types/WorkflowRunTabId'; -import { WORKFLOW_SERVERLESS_FUNCTION_TAB_LIST_COMPONENT_ID } from '@/workflow/workflow-steps/workflow-actions/constants/WorkflowServerlessFunctionTabListComponentId'; -import { WorkflowServerlessFunctionTabId } from '@/workflow/workflow-steps/workflow-actions/types/WorkflowServerlessFunctionTabId'; +import { WORKFLOW_SERVERLESS_FUNCTION_TAB_LIST_COMPONENT_ID } from '@/workflow/workflow-steps/workflow-actions/code-action/constants/WorkflowServerlessFunctionTabListComponentId'; +import { WorkflowServerlessFunctionTabId } from '@/workflow/workflow-steps/workflow-actions/code-action/types/WorkflowServerlessFunctionTabId'; import { useRecoilCallback } from 'recoil'; export const useCommandMenuCloseAnimationCompleteCleanup = () => { diff --git a/packages/twenty-front/src/modules/command-menu/pages/workflow/step/view-run/components/CommandMenuWorkflowRunViewStep.tsx b/packages/twenty-front/src/modules/command-menu/pages/workflow/step/view-run/components/CommandMenuWorkflowRunViewStep.tsx index e0139ef12..3d914064c 100644 --- a/packages/twenty-front/src/modules/command-menu/pages/workflow/step/view-run/components/CommandMenuWorkflowRunViewStep.tsx +++ b/packages/twenty-front/src/modules/command-menu/pages/workflow/step/view-run/components/CommandMenuWorkflowRunViewStep.tsx @@ -7,8 +7,8 @@ import { useWorkflowRunIdOrThrow } from '@/workflow/hooks/useWorkflowRunIdOrThro import { WorkflowStepContextProvider } from '@/workflow/states/context/WorkflowStepContext'; import { useWorkflowSelectedNodeOrThrow } from '@/workflow/workflow-diagram/hooks/useWorkflowSelectedNodeOrThrow'; import { WorkflowRunStepInputDetail } from '@/workflow/workflow-steps/components/WorkflowRunStepInputDetail'; +import { WorkflowRunStepNodeDetail } from '@/workflow/workflow-steps/components/WorkflowRunStepNodeDetail'; import { WorkflowRunStepOutputDetail } from '@/workflow/workflow-steps/components/WorkflowRunStepOutputDetail'; -import { WorkflowStepDetail } from '@/workflow/workflow-steps/components/WorkflowStepDetail'; import { WORKFLOW_RUN_STEP_SIDE_PANEL_TAB_LIST_COMPONENT_ID } from '@/workflow/workflow-steps/constants/WorkflowRunStepSidePanelTabListComponentId'; import { WorkflowRunTabId, @@ -82,8 +82,7 @@ export const CommandMenuWorkflowRunViewStep = () => { /> {activeTabId === WorkflowRunTabId.NODE ? ( - { - const flow = useFlowOrThrow(); - const workflowSelectedNode = useWorkflowSelectedNodeOrThrow(); - - return ( - - - - ); -}; diff --git a/packages/twenty-front/src/modules/workflow/workflow-steps/components/WorkflowRunStepNodeDetail.tsx b/packages/twenty-front/src/modules/workflow/workflow-steps/components/WorkflowRunStepNodeDetail.tsx new file mode 100644 index 000000000..0648eccf4 --- /dev/null +++ b/packages/twenty-front/src/modules/workflow/workflow-steps/components/WorkflowRunStepNodeDetail.tsx @@ -0,0 +1,175 @@ +import { WorkflowAction, WorkflowTrigger } from '@/workflow/types/Workflow'; +import { assertUnreachable } from '@/workflow/utils/assertUnreachable'; +import { getStepDefinitionOrThrow } from '@/workflow/utils/getStepDefinitionOrThrow'; +import { WorkflowActionServerlessFunction } from '@/workflow/workflow-steps/workflow-actions/code-action/components/WorkflowActionServerlessFunction'; +import { WorkflowEditActionCreateRecord } from '@/workflow/workflow-steps/workflow-actions/components/WorkflowEditActionCreateRecord'; +import { WorkflowEditActionDeleteRecord } from '@/workflow/workflow-steps/workflow-actions/components/WorkflowEditActionDeleteRecord'; +import { WorkflowEditActionFindRecords } from '@/workflow/workflow-steps/workflow-actions/components/WorkflowEditActionFindRecords'; +import { WorkflowEditActionSendEmail } from '@/workflow/workflow-steps/workflow-actions/components/WorkflowEditActionSendEmail'; +import { WorkflowEditActionUpdateRecord } from '@/workflow/workflow-steps/workflow-actions/components/WorkflowEditActionUpdateRecord'; +import { WorkflowEditTriggerCronForm } from '@/workflow/workflow-trigger/components/WorkflowEditTriggerCronForm'; +import { WorkflowEditTriggerDatabaseEventForm } from '@/workflow/workflow-trigger/components/WorkflowEditTriggerDatabaseEventForm'; +import { WorkflowEditTriggerManualForm } from '@/workflow/workflow-trigger/components/WorkflowEditTriggerManualForm'; +import { WorkflowEditTriggerWebhookForm } from '@/workflow/workflow-trigger/components/WorkflowEditTriggerWebhookForm'; +import { isDefined } from 'twenty-shared'; + +type WorkflowRunStepNodeDetailProps = { + stepId: string; + trigger: WorkflowTrigger | null; + steps: Array | null; +}; + +export const WorkflowRunStepNodeDetail = ({ + stepId, + trigger, + steps, +}: WorkflowRunStepNodeDetailProps) => { + const stepDefinition = getStepDefinitionOrThrow({ + stepId, + trigger, + steps, + }); + + if (!isDefined(stepDefinition) || !isDefined(stepDefinition.definition)) { + return null; + } + + switch (stepDefinition.type) { + case 'trigger': { + switch (stepDefinition.definition.type) { + case 'DATABASE_EVENT': { + return ( + + ); + } + case 'MANUAL': { + return ( + + ); + } + case 'WEBHOOK': { + return ( + + ); + } + case 'CRON': { + return ( + + ); + } + } + + return assertUnreachable( + stepDefinition.definition, + `Expected the step to have an handler; ${JSON.stringify(stepDefinition)}`, + ); + } + case 'action': { + switch (stepDefinition.definition.type) { + case 'CODE': { + return ( + + ); + } + case 'SEND_EMAIL': { + return ( + + ); + } + case 'CREATE_RECORD': { + return ( + + ); + } + + case 'UPDATE_RECORD': { + return ( + + ); + } + + case 'DELETE_RECORD': { + return ( + + ); + } + + case 'FIND_RECORDS': { + return ( + + ); + } + + case 'FORM': { + // TODO: Implement form filler + return null; + } + } + } + } + + return assertUnreachable( + stepDefinition, + `Expected the step to have an handler; ${JSON.stringify(stepDefinition)}`, + ); +}; diff --git a/packages/twenty-front/src/modules/workflow/workflow-steps/components/WorkflowStepDetail.tsx b/packages/twenty-front/src/modules/workflow/workflow-steps/components/WorkflowStepDetail.tsx index 3ff8fc3f8..3d7ad7be8 100644 --- a/packages/twenty-front/src/modules/workflow/workflow-steps/components/WorkflowStepDetail.tsx +++ b/packages/twenty-front/src/modules/workflow/workflow-steps/components/WorkflowStepDetail.tsx @@ -1,35 +1,18 @@ import { WorkflowAction, WorkflowTrigger } from '@/workflow/types/Workflow'; import { assertUnreachable } from '@/workflow/utils/assertUnreachable'; import { getStepDefinitionOrThrow } from '@/workflow/utils/getStepDefinitionOrThrow'; +import { WorkflowActionServerlessFunction } from '@/workflow/workflow-steps/workflow-actions/code-action/components/WorkflowActionServerlessFunction'; import { WorkflowEditActionCreateRecord } from '@/workflow/workflow-steps/workflow-actions/components/WorkflowEditActionCreateRecord'; import { WorkflowEditActionDeleteRecord } from '@/workflow/workflow-steps/workflow-actions/components/WorkflowEditActionDeleteRecord'; import { WorkflowEditActionFindRecords } from '@/workflow/workflow-steps/workflow-actions/components/WorkflowEditActionFindRecords'; import { WorkflowEditActionSendEmail } from '@/workflow/workflow-steps/workflow-actions/components/WorkflowEditActionSendEmail'; import { WorkflowEditActionUpdateRecord } from '@/workflow/workflow-steps/workflow-actions/components/WorkflowEditActionUpdateRecord'; -import { WorkflowEditActionForm } from '@/workflow/workflow-steps/workflow-actions/form-action/components/WorkflowEditActionForm'; +import { WorkflowEditActionFormBuilder } from '@/workflow/workflow-steps/workflow-actions/form-action/components/WorkflowEditActionFormBuilder'; import { WorkflowEditTriggerCronForm } from '@/workflow/workflow-trigger/components/WorkflowEditTriggerCronForm'; import { WorkflowEditTriggerDatabaseEventForm } from '@/workflow/workflow-trigger/components/WorkflowEditTriggerDatabaseEventForm'; import { WorkflowEditTriggerManualForm } from '@/workflow/workflow-trigger/components/WorkflowEditTriggerManualForm'; -import { Suspense, lazy } from 'react'; -import { isDefined } from 'twenty-shared'; -import { RightDrawerSkeletonLoader } from '~/loading/components/RightDrawerSkeletonLoader'; import { WorkflowEditTriggerWebhookForm } from '@/workflow/workflow-trigger/components/WorkflowEditTriggerWebhookForm'; - -const WorkflowEditActionServerlessFunction = lazy(() => - import( - '@/workflow/workflow-steps/workflow-actions/components/WorkflowEditActionServerlessFunction' - ).then((module) => ({ - default: module.WorkflowEditActionServerlessFunction, - })), -); - -const WorkflowReadonlyActionServerlessFunction = lazy(() => - import( - '@/workflow/workflow-steps/workflow-actions/components/WorkflowReadonlyActionServerlessFunction' - ).then((module) => ({ - default: module.WorkflowReadonlyActionServerlessFunction, - })), -); +import { isDefined } from 'twenty-shared'; type WorkflowStepDetailProps = { stepId: string; @@ -115,20 +98,11 @@ export const WorkflowStepDetail = ({ switch (stepDefinition.definition.type) { case 'CODE': { return ( - }> - {props.readonly ? ( - - ) : ( - - )} - + ); } case 'SEND_EMAIL': { @@ -182,7 +156,7 @@ export const WorkflowStepDetail = ({ case 'FORM': { return ( - void; + }; +}; + +const WorkflowEditActionServerlessFunction = lazy(() => + import( + '@/workflow/workflow-steps/workflow-actions/code-action/components/WorkflowEditActionServerlessFunction' + ).then((module) => ({ + default: module.WorkflowEditActionServerlessFunction, + })), +); + +const WorkflowReadonlyActionServerlessFunction = lazy(() => + import( + '@/workflow/workflow-steps/workflow-actions/code-action/components/WorkflowReadonlyActionServerlessFunction' + ).then((module) => ({ + default: module.WorkflowReadonlyActionServerlessFunction, + })), +); + +export const WorkflowActionServerlessFunction = ({ + action, + actionOptions, +}: WorkflowActionServerlessFunctionProps) => { + return ( + }> + {actionOptions.readonly ? ( + + ) : ( + + )} + + ); +}; diff --git a/packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/components/WorkflowEditActionServerlessFunction.tsx b/packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/code-action/components/WorkflowEditActionServerlessFunction.tsx similarity index 96% rename from packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/components/WorkflowEditActionServerlessFunction.tsx rename to packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/code-action/components/WorkflowEditActionServerlessFunction.tsx index e011b37f9..d48eb8afc 100644 --- a/packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/components/WorkflowEditActionServerlessFunction.tsx +++ b/packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/code-action/components/WorkflowEditActionServerlessFunction.tsx @@ -6,7 +6,7 @@ import { useWorkflowWithCurrentVersion } from '@/workflow/hooks/useWorkflowWithC import { workflowIdState } from '@/workflow/states/workflowIdState'; import { WorkflowCodeAction } from '@/workflow/types/Workflow'; import { WorkflowStepHeader } from '@/workflow/workflow-steps/components/WorkflowStepHeader'; -import { setNestedValue } from '@/workflow/workflow-steps/workflow-actions/utils/setNestedValue'; +import { setNestedValue } from '@/workflow/workflow-steps/workflow-actions/code-action/utils/setNestedValue'; import { CmdEnterActionButton } from '@/action-menu/components/CmdEnterActionButton'; import { ServerlessFunctionExecutionResult } from '@/serverless-functions/components/ServerlessFunctionExecutionResult'; @@ -23,11 +23,11 @@ import { activeTabIdComponentState } from '@/ui/layout/tab/states/activeTabIdCom import { useRecoilComponentValueV2 } from '@/ui/utilities/state/component-state/hooks/useRecoilComponentValueV2'; import { serverlessFunctionTestDataFamilyState } from '@/workflow/states/serverlessFunctionTestDataFamilyState'; import { WorkflowStepBody } from '@/workflow/workflow-steps/components/WorkflowStepBody'; -import { WorkflowEditActionServerlessFunctionFields } from '@/workflow/workflow-steps/workflow-actions/components/WorkflowEditActionServerlessFunctionFields'; -import { WORKFLOW_SERVERLESS_FUNCTION_TAB_LIST_COMPONENT_ID } from '@/workflow/workflow-steps/workflow-actions/constants/WorkflowServerlessFunctionTabListComponentId'; -import { WorkflowServerlessFunctionTabId } from '@/workflow/workflow-steps/workflow-actions/types/WorkflowServerlessFunctionTabId'; +import { WorkflowEditActionServerlessFunctionFields } from '@/workflow/workflow-steps/workflow-actions/code-action/components/WorkflowEditActionServerlessFunctionFields'; +import { WORKFLOW_SERVERLESS_FUNCTION_TAB_LIST_COMPONENT_ID } from '@/workflow/workflow-steps/workflow-actions/code-action/constants/WorkflowServerlessFunctionTabListComponentId'; +import { WorkflowServerlessFunctionTabId } from '@/workflow/workflow-steps/workflow-actions/code-action/types/WorkflowServerlessFunctionTabId'; +import { getWrongExportedFunctionMarkers } from '@/workflow/workflow-steps/workflow-actions/code-action/utils/getWrongExportedFunctionMarkers'; import { getActionIcon } from '@/workflow/workflow-steps/workflow-actions/utils/getActionIcon'; -import { getWrongExportedFunctionMarkers } from '@/workflow/workflow-steps/workflow-actions/utils/getWrongExportedFunctionMarkers'; import { WorkflowVariablePicker } from '@/workflow/workflow-variables/components/WorkflowVariablePicker'; import { useTheme } from '@emotion/react'; import styled from '@emotion/styled'; diff --git a/packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/components/WorkflowEditActionServerlessFunctionFields.tsx b/packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/code-action/components/WorkflowEditActionServerlessFunctionFields.tsx similarity index 98% rename from packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/components/WorkflowEditActionServerlessFunctionFields.tsx rename to packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/code-action/components/WorkflowEditActionServerlessFunctionFields.tsx index f357e13af..dfee3b3d8 100644 --- a/packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/components/WorkflowEditActionServerlessFunctionFields.tsx +++ b/packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/code-action/components/WorkflowEditActionServerlessFunctionFields.tsx @@ -2,7 +2,7 @@ import { FormNestedFieldInputContainer } from '@/object-record/record-field/form import { FormTextFieldInput } from '@/object-record/record-field/form-types/components/FormTextFieldInput'; import { VariablePickerComponent } from '@/object-record/record-field/form-types/types/VariablePickerComponent'; import { InputLabel } from '@/ui/input/components/InputLabel'; -import { FunctionInput } from '@/workflow/workflow-steps/workflow-actions/types/FunctionInput'; +import { FunctionInput } from '@/workflow/workflow-steps/workflow-actions/code-action/types/FunctionInput'; import styled from '@emotion/styled'; import { isObject } from '@sniptt/guards'; diff --git a/packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/components/WorkflowReadonlyActionServerlessFunction.tsx b/packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/code-action/components/WorkflowReadonlyActionServerlessFunction.tsx similarity index 94% rename from packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/components/WorkflowReadonlyActionServerlessFunction.tsx rename to packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/code-action/components/WorkflowReadonlyActionServerlessFunction.tsx index d4257e146..a908c9625 100644 --- a/packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/components/WorkflowReadonlyActionServerlessFunction.tsx +++ b/packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/code-action/components/WorkflowReadonlyActionServerlessFunction.tsx @@ -5,9 +5,9 @@ import { WorkflowStepHeader } from '@/workflow/workflow-steps/components/Workflo import { INDEX_FILE_PATH } from '@/serverless-functions/constants/IndexFilePath'; import { WorkflowStepBody } from '@/workflow/workflow-steps/components/WorkflowStepBody'; -import { WorkflowEditActionServerlessFunctionFields } from '@/workflow/workflow-steps/workflow-actions/components/WorkflowEditActionServerlessFunctionFields'; +import { WorkflowEditActionServerlessFunctionFields } from '@/workflow/workflow-steps/workflow-actions/code-action/components/WorkflowEditActionServerlessFunctionFields'; +import { getWrongExportedFunctionMarkers } from '@/workflow/workflow-steps/workflow-actions/code-action/utils/getWrongExportedFunctionMarkers'; import { getActionIcon } from '@/workflow/workflow-steps/workflow-actions/utils/getActionIcon'; -import { getWrongExportedFunctionMarkers } from '@/workflow/workflow-steps/workflow-actions/utils/getWrongExportedFunctionMarkers'; import { useTheme } from '@emotion/react'; import styled from '@emotion/styled'; import { Monaco } from '@monaco-editor/react'; diff --git a/packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/constants/WorkflowServerlessFunctionTabListComponentId.ts b/packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/code-action/constants/WorkflowServerlessFunctionTabListComponentId.ts similarity index 100% rename from packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/constants/WorkflowServerlessFunctionTabListComponentId.ts rename to packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/code-action/constants/WorkflowServerlessFunctionTabListComponentId.ts diff --git a/packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/types/FunctionInput.ts b/packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/code-action/types/FunctionInput.ts similarity index 100% rename from packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/types/FunctionInput.ts rename to packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/code-action/types/FunctionInput.ts diff --git a/packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/types/WorkflowServerlessFunctionTabId.ts b/packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/code-action/types/WorkflowServerlessFunctionTabId.ts similarity index 100% rename from packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/types/WorkflowServerlessFunctionTabId.ts rename to packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/code-action/types/WorkflowServerlessFunctionTabId.ts diff --git a/packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/utils/__tests__/getWrongExportedFunctionMarkers.test.ts b/packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/code-action/utils/__tests__/getWrongExportedFunctionMarkers.test.ts similarity index 93% rename from packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/utils/__tests__/getWrongExportedFunctionMarkers.test.ts rename to packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/code-action/utils/__tests__/getWrongExportedFunctionMarkers.test.ts index a93a4b725..4d566ec53 100644 --- a/packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/utils/__tests__/getWrongExportedFunctionMarkers.test.ts +++ b/packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/code-action/utils/__tests__/getWrongExportedFunctionMarkers.test.ts @@ -1,4 +1,4 @@ -import { getWrongExportedFunctionMarkers } from '@/workflow/workflow-steps/workflow-actions/utils/getWrongExportedFunctionMarkers'; +import { getWrongExportedFunctionMarkers } from '@/workflow/workflow-steps/workflow-actions/code-action/utils/getWrongExportedFunctionMarkers'; describe('getWrongExportedFunctionMarkers', () => { it('should return marker when no exported function', () => { diff --git a/packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/utils/__tests__/setNestedValue.test.ts b/packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/code-action/utils/__tests__/setNestedValue.test.ts similarity index 94% rename from packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/utils/__tests__/setNestedValue.test.ts rename to packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/code-action/utils/__tests__/setNestedValue.test.ts index 7fe11463e..1c7084a5a 100644 --- a/packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/utils/__tests__/setNestedValue.test.ts +++ b/packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/code-action/utils/__tests__/setNestedValue.test.ts @@ -1,4 +1,4 @@ -import { setNestedValue } from '@/workflow/workflow-steps/workflow-actions/utils/setNestedValue'; +import { setNestedValue } from '@/workflow/workflow-steps/workflow-actions/code-action/utils/setNestedValue'; describe('setNestedValue', () => { it('should set nested value properly', () => { diff --git a/packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/utils/getWrongExportedFunctionMarkers.ts b/packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/code-action/utils/getWrongExportedFunctionMarkers.ts similarity index 100% rename from packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/utils/getWrongExportedFunctionMarkers.ts rename to packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/code-action/utils/getWrongExportedFunctionMarkers.ts diff --git a/packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/utils/setNestedValue.ts b/packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/code-action/utils/setNestedValue.ts similarity index 100% rename from packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/utils/setNestedValue.ts rename to packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/code-action/utils/setNestedValue.ts diff --git a/packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/form-action/components/WorkflowEditActionForm.tsx b/packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/form-action/components/WorkflowEditActionFormBuilder.tsx similarity index 98% rename from packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/form-action/components/WorkflowEditActionForm.tsx rename to packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/form-action/components/WorkflowEditActionFormBuilder.tsx index 17fd6a606..9dde8a057 100644 --- a/packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/form-action/components/WorkflowEditActionForm.tsx +++ b/packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/form-action/components/WorkflowEditActionFormBuilder.tsx @@ -24,7 +24,7 @@ import { useDebouncedCallback } from 'use-debounce'; import { v4 } from 'uuid'; -export type WorkflowEditActionFormProps = { +export type WorkflowEditActionFormBuilderProps = { action: WorkflowFormAction; actionOptions: | { @@ -99,10 +99,10 @@ const StyledAddFieldContainer = styled.div` gap: ${({ theme }) => theme.spacing(0.5)}; `; -export const WorkflowEditActionForm = ({ +export const WorkflowEditActionFormBuilder = ({ action, actionOptions, -}: WorkflowEditActionFormProps) => { +}: WorkflowEditActionFormBuilderProps) => { const theme = useTheme(); const { getIcon } = useIcons(); const { t } = useLingui(); diff --git a/packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/form-action/components/WorkflowEditActionFormFieldSettings.tsx b/packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/form-action/components/WorkflowEditActionFormFieldSettings.tsx index af2ccba48..e7a474c8b 100644 --- a/packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/form-action/components/WorkflowEditActionFormFieldSettings.tsx +++ b/packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/form-action/components/WorkflowEditActionFormFieldSettings.tsx @@ -1,7 +1,7 @@ import { FormFieldInputContainer } from '@/object-record/record-field/form-types/components/FormFieldInputContainer'; import { FormSelectFieldInput } from '@/object-record/record-field/form-types/components/FormSelectFieldInput'; import { InputLabel } from '@/ui/input/components/InputLabel'; -import { WorkflowFormActionField } from '@/workflow/workflow-steps/workflow-actions/form-action/components/WorkflowEditActionForm'; +import { WorkflowFormActionField } from '@/workflow/workflow-steps/workflow-actions/form-action/components/WorkflowEditActionFormBuilder'; import { WorkflowFormFieldSettingsByType } from '@/workflow/workflow-steps/workflow-actions/form-action/components/WorkflowFormFieldSettingsByType'; import { getDefaultFormFieldSettings } from '@/workflow/workflow-steps/workflow-actions/form-action/utils/getDefaultFormFieldSettings'; import { useTheme } from '@emotion/react'; diff --git a/packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/form-action/components/WorkflowFormFieldSettingsByType.tsx b/packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/form-action/components/WorkflowFormFieldSettingsByType.tsx index 795116a96..a1a103882 100644 --- a/packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/form-action/components/WorkflowFormFieldSettingsByType.tsx +++ b/packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/form-action/components/WorkflowFormFieldSettingsByType.tsx @@ -1,4 +1,4 @@ -import { WorkflowFormActionField } from '@/workflow/workflow-steps/workflow-actions/form-action/components/WorkflowEditActionForm'; +import { WorkflowFormActionField } from '@/workflow/workflow-steps/workflow-actions/form-action/components/WorkflowEditActionFormBuilder'; import { assertUnreachable, FieldMetadataType } from 'twenty-shared'; import { WorkflowFormFieldSettingsNumber } from './WorkflowFormFieldSettingsNumber'; import { WorkflowFormFieldSettingsText } from './WorkflowFormFieldSettingsText'; diff --git a/packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/form-action/components/__stories__/WorkflowEditActionForm.stories.tsx b/packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/form-action/components/__stories__/WorkflowEditActionFormBuilder.stories.tsx similarity index 85% rename from packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/form-action/components/__stories__/WorkflowEditActionForm.stories.tsx rename to packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/form-action/components/__stories__/WorkflowEditActionFormBuilder.stories.tsx index df1786786..f67b52d55 100644 --- a/packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/form-action/components/__stories__/WorkflowEditActionForm.stories.tsx +++ b/packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/form-action/components/__stories__/WorkflowEditActionFormBuilder.stories.tsx @@ -1,5 +1,5 @@ import { WorkflowFormAction } from '@/workflow/types/Workflow'; -import { WorkflowEditActionForm } from '@/workflow/workflow-steps/workflow-actions/form-action/components/WorkflowEditActionForm'; +import { WorkflowEditActionFormBuilder } from '@/workflow/workflow-steps/workflow-actions/form-action/components/WorkflowEditActionFormBuilder'; import { Meta, StoryObj } from '@storybook/react'; import { expect, fn, within } from '@storybook/test'; import { FieldMetadataType } from 'twenty-shared'; @@ -43,9 +43,9 @@ const DEFAULT_ACTION = { }, } satisfies WorkflowFormAction; -const meta: Meta = { - title: 'Modules/Workflow/Actions/Form/WorkflowEditActionForm', - component: WorkflowEditActionForm, +const meta: Meta = { + title: 'Modules/Workflow/Actions/Form/WorkflowEditActionFormBuilder', + component: WorkflowEditActionFormBuilder, parameters: { msw: graphqlMocks, }, @@ -62,7 +62,7 @@ const meta: Meta = { export default meta; -type Story = StoryObj; +type Story = StoryObj; export const Default: Story = { args: {