import { WorkflowStep } from '@/workflow/types/Workflow'; import { TRIGGER_STEP_ID } from '@/workflow/workflow-trigger/constants/TriggerStepId'; import { isDefined } from 'twenty-shared/utils'; /** * This function returns the reference of the array where the step should be positioned * and at which index. */ export const findStepPosition = ({ steps, stepId, }: { steps: Array; stepId: string | undefined; }): { steps: Array; index: number } | undefined => { if (!isDefined(stepId) || stepId === TRIGGER_STEP_ID) { return { steps, index: 0, }; } for (const [index, step] of steps.entries()) { if (step.id === stepId) { return { steps, index, }; } // TODO: When condition will have been implemented, put recursivity here. // if (step.type === "CONDITION") { // return findNodePosition({ // workflowSteps: step.conditions, // stepId, // }) // } } return undefined; };