diff --git a/packages/twenty-front/src/modules/workflow/workflow-steps/hooks/useCreateWorkflowVersionStep.ts b/packages/twenty-front/src/modules/workflow/workflow-steps/hooks/useCreateWorkflowVersionStep.ts index 9473789431..4d08c2763a 100644 --- a/packages/twenty-front/src/modules/workflow/workflow-steps/hooks/useCreateWorkflowVersionStep.ts +++ b/packages/twenty-front/src/modules/workflow/workflow-steps/hooks/useCreateWorkflowVersionStep.ts @@ -7,12 +7,17 @@ import { CreateWorkflowVersionStepMutationVariables, } from '~/generated-metadata/graphql'; import { useUpdateWorkflowVersionCache } from '@/workflow/workflow-steps/hooks/useUpdateWorkflowVersionCache'; +import { flowComponentState } from '@/workflow/states/flowComponentState'; +import { useSetRecoilComponentState } from '@/ui/utilities/state/component-state/hooks/useSetRecoilComponentState'; +import { isDefined } from 'twenty-shared/utils'; export const useCreateWorkflowVersionStep = () => { const apolloCoreClient = useApolloCoreClient(); const { updateWorkflowVersionCache } = useUpdateWorkflowVersionCache(); + const setFlow = useSetRecoilComponentState(flowComponentState); + const [mutate] = useMutation< CreateWorkflowVersionStepMutation, CreateWorkflowVersionStepMutationVariables @@ -29,11 +34,19 @@ export const useCreateWorkflowVersionStep = () => { const workflowVersionStepChanges = result?.data?.createWorkflowVersionStep; - updateWorkflowVersionCache({ + const updatedWorkflowVersion = updateWorkflowVersionCache({ workflowVersionStepChanges, workflowVersionId: input.workflowVersionId, }); + if (isDefined(updatedWorkflowVersion)) { + setFlow({ + workflowVersionId: updatedWorkflowVersion.id, + trigger: updatedWorkflowVersion.trigger, + steps: updatedWorkflowVersion.steps, + }); + } + return result; }; diff --git a/packages/twenty-front/src/modules/workflow/workflow-steps/hooks/useUpdateWorkflowVersionCache.ts b/packages/twenty-front/src/modules/workflow/workflow-steps/hooks/useUpdateWorkflowVersionCache.ts index 9a3d5804a0..cfcd17cb2e 100644 --- a/packages/twenty-front/src/modules/workflow/workflow-steps/hooks/useUpdateWorkflowVersionCache.ts +++ b/packages/twenty-front/src/modules/workflow/workflow-steps/hooks/useUpdateWorkflowVersionCache.ts @@ -5,12 +5,9 @@ import { CoreObjectNameSingular } from '@/object-metadata/types/CoreObjectNameSi import { useGetRecordFromCache } from '@/object-record/cache/hooks/useGetRecordFromCache'; import { updateRecordFromCache } from '@/object-record/cache/utils/updateRecordFromCache'; import { useObjectPermissions } from '@/object-record/hooks/useObjectPermissions'; -import { WorkflowVersion } from '@/workflow/types/Workflow'; +import { WorkflowAction, WorkflowVersion } from '@/workflow/types/Workflow'; import { isDefined } from 'twenty-shared/utils'; -import { - WorkflowAction, - WorkflowVersionStepChanges, -} from '~/generated/graphql'; +import { WorkflowVersionStepChanges } from '~/generated/graphql'; export const useUpdateWorkflowVersionCache = () => { const apolloCoreClient = useApolloCoreClient(); @@ -33,7 +30,7 @@ export const useUpdateWorkflowVersionCache = () => { }: { workflowVersionStepChanges: WorkflowVersionStepChanges | undefined; workflowVersionId: string; - }) => { + }): WorkflowVersion | undefined => { if (!isDefined(workflowVersionStepChanges)) { return; } @@ -63,11 +60,11 @@ export const useUpdateWorkflowVersionCache = () => { ...step, nextStepIds: stepsNextStepIds[step.id] ?? step.nextStepIds, })), - }; + } satisfies WorkflowVersion; if (isDefined(createdStep)) { const formattedCreatedStep = { - ...createdStep, + ...(createdStep as WorkflowAction), nextStepIds: createdStep.nextStepIds || [], }; @@ -99,6 +96,8 @@ export const useUpdateWorkflowVersionCache = () => { recordGqlFields, objectPermissionsByObjectMetadataId, }); + + return newCachedRecord; }; return { updateWorkflowVersionCache };