feat: add-create-update-record in workflow (#14654)
## Description - this PR focuses on issue https://github.com/twentyhq/core-team-issues/issues/1476 - Added upsert action ## Visual Appearance <img width="1792" height="1041" alt="Screenshot 2025-10-03 at 12 57 58 PM" src="https://github.com/user-attachments/assets/57afb96c-d4b3-4a87-95f0-11ac4bd61dd8" /> <img width="1792" height="1031" alt="Screenshot 2025-10-03 at 12 57 48 PM" src="https://github.com/user-attachments/assets/9032d4c2-f0d2-46f1-8682-a7e5c280a303" /> --------- Co-authored-by: Félix Malfait <felix.malfait@gmail.com> Co-authored-by: Thomas Trompette <thomas.trompette@sfr.fr>
This commit is contained in:
+1
@@ -80,6 +80,7 @@ describe('useCreateStep', () => {
|
||||
stepType: 'CODE',
|
||||
parentStepId: 'parent-step-id',
|
||||
nextStepId: undefined,
|
||||
parentStepConnectionOptions: undefined,
|
||||
position: undefined,
|
||||
});
|
||||
});
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import { useSetRecoilComponentState } from '@/ui/utilities/state/component-state/hooks/useSetRecoilComponentState';
|
||||
import { useGetUpdatableWorkflowVersionOrThrow } from '@/workflow/hooks/useGetUpdatableWorkflowVersionOrThrow';
|
||||
import { workflowLastCreatedStepIdComponentState } from '@/workflow/states/workflowLastCreatedStepIdComponentState';
|
||||
import { type WorkflowStepType } from '@/workflow/types/Workflow';
|
||||
import { type WorkflowActionType } from '@/workflow/types/Workflow';
|
||||
import { workflowSelectedNodeComponentState } from '@/workflow/workflow-diagram/states/workflowSelectedNodeComponentState';
|
||||
import { type WorkflowStepConnectionOptions } from '@/workflow/workflow-diagram/workflow-iterator/types/WorkflowStepConnectionOptions';
|
||||
import { useCreateWorkflowVersionStep } from '@/workflow/workflow-steps/hooks/useCreateWorkflowVersionStep';
|
||||
@@ -35,7 +35,7 @@ export const useCreateStep = () => {
|
||||
position,
|
||||
connectionOptions,
|
||||
}: {
|
||||
newStepType: WorkflowStepType;
|
||||
newStepType: WorkflowActionType;
|
||||
parentStepId: string | undefined;
|
||||
nextStepId: string | undefined;
|
||||
position?: { x: number; y: number };
|
||||
|
||||
+2
-3
@@ -6,14 +6,13 @@ import { useGetRecordFromCache } from '@/object-record/cache/hooks/useGetRecordF
|
||||
import { updateRecordFromCache } from '@/object-record/cache/utils/updateRecordFromCache';
|
||||
import { useObjectPermissions } from '@/object-record/hooks/useObjectPermissions';
|
||||
import { UPDATE_WORKFLOW_RUN_STEP } from '@/workflow/graphql/mutations/updateWorkflowRunStep';
|
||||
import { type WorkflowRun } from '@/workflow/types/Workflow';
|
||||
import { type WorkflowStep, type WorkflowRun } from '@/workflow/types/Workflow';
|
||||
import { useMutation } from '@apollo/client';
|
||||
import { isDefined } from 'twenty-shared/utils';
|
||||
import {
|
||||
type UpdateWorkflowRunStepInput,
|
||||
type UpdateWorkflowRunStepMutation,
|
||||
type UpdateWorkflowRunStepMutationVariables,
|
||||
type WorkflowAction,
|
||||
} from '~/generated-metadata/graphql';
|
||||
|
||||
export const useUpdateWorkflowRunStep = () => {
|
||||
@@ -60,7 +59,7 @@ export const useUpdateWorkflowRunStep = () => {
|
||||
...cachedRecord.state,
|
||||
flow: {
|
||||
...cachedRecord.state.flow,
|
||||
steps: cachedRecord.state.flow.steps.map((step: WorkflowAction) => {
|
||||
steps: cachedRecord.state.flow.steps.map((step: WorkflowStep) => {
|
||||
if (step.id === updatedStep.id) {
|
||||
return updatedStep;
|
||||
}
|
||||
|
||||
+5
-3
@@ -6,14 +6,16 @@ import { useGetRecordFromCache } from '@/object-record/cache/hooks/useGetRecordF
|
||||
import { updateRecordFromCache } from '@/object-record/cache/utils/updateRecordFromCache';
|
||||
import { useObjectPermissions } from '@/object-record/hooks/useObjectPermissions';
|
||||
import { UPDATE_WORKFLOW_VERSION_STEP } from '@/workflow/graphql/mutations/updateWorkflowVersionStep';
|
||||
import { type WorkflowVersion } from '@/workflow/types/Workflow';
|
||||
import {
|
||||
type WorkflowVersion,
|
||||
type WorkflowStep,
|
||||
} from '@/workflow/types/Workflow';
|
||||
import { useMutation } from '@apollo/client';
|
||||
import { isDefined } from 'twenty-shared/utils';
|
||||
import {
|
||||
type UpdateWorkflowVersionStepInput,
|
||||
type UpdateWorkflowVersionStepMutation,
|
||||
type UpdateWorkflowVersionStepMutationVariables,
|
||||
type WorkflowAction,
|
||||
} from '~/generated-metadata/graphql';
|
||||
|
||||
export const useUpdateWorkflowVersionStep = () => {
|
||||
@@ -52,7 +54,7 @@ export const useUpdateWorkflowVersionStep = () => {
|
||||
|
||||
const newCachedRecord = {
|
||||
...cachedRecord,
|
||||
steps: (cachedRecord.steps || []).map((step: WorkflowAction) => {
|
||||
steps: (cachedRecord.steps || []).map((step: WorkflowStep) => {
|
||||
if (step.id === updatedStep.id) {
|
||||
return updatedStep;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user