diff --git a/packages/web/src/components/FlowStep/index.tsx b/packages/web/src/components/FlowStep/index.tsx index eac83311..62ddc67a 100644 --- a/packages/web/src/components/FlowStep/index.tsx +++ b/packages/web/src/components/FlowStep/index.tsx @@ -75,13 +75,15 @@ export default function FlowStep(props: FlowStepProps): React.ReactElement | nul }, [step, onChange]); const appAndEventOptions = React.useMemo(() => apps?.map((app) => optionGenerator(app)), [apps]); - const actionOptions = React.useMemo(() => app?.triggers?.map((trigger) => optionGenerator(trigger)) ?? [], [app?.key]); + const actionsOrTriggers = isTrigger ? app?.triggers : app?.actions; + const actionOptions = React.useMemo(() => actionsOrTriggers?.map((trigger) => optionGenerator(trigger)) ?? [], [app?.key]); + const substeps = React.useMemo(() => actionsOrTriggers?.find(({ key }) => key === step.key)?.subSteps, [actionsOrTriggers, step?.key]); const onAppChange = React.useCallback((event: React.SyntheticEvent, selectedOption: unknown) => { if (typeof selectedOption === 'object') { const typedSelectedOption = selectedOption as { value: string; }; const option: { value: string } = typedSelectedOption; - const appKey = option.value as string; + const appKey = option?.value as string; setStep((step) => ({ ...step, appKey, parameters: {} })); } }, []); @@ -90,13 +92,11 @@ export default function FlowStep(props: FlowStepProps): React.ReactElement | nul if (typeof selectedOption === 'object') { const typedSelectedOption = selectedOption as { value: string; }; const option: { value: string } = typedSelectedOption; - const eventKey = option.value as string; + const eventKey = option?.value as string; setStep((step) => ({ ...step, - parameters: { - ...step.parameters, - eventKey, - } + key: eventKey, + parameters: {}, })); } }, []); @@ -145,52 +145,65 @@ export default function FlowStep(props: FlowStepProps): React.ReactElement | nul - {true && ( - - - - toggleSubstep(0)}> + + + + toggleSubstep(0)} selected={currentSubstep === 0} divider> + Choose app & event - - - - } - value={getOption(appAndEventOptions, step.appKey)} - onChange={onAppChange} - /> - - + + + + + } + value={getOption(appAndEventOptions, step.appKey)} + onChange={onAppChange} + /> + {step.appKey && ( + + + Action event + - toggleSubstep(1)}> - Action event - - - - } - value={getOption(actionOptions, step?.parameters?.eventKey)} - onChange={onEventChange} - /> - - - - + } + value={getOption(actionOptions, step.key)} + onChange={onEventChange} + /> + + )} + + - - - )} + {substeps?.length > 0 && substeps.map((substep: Record, index: number) => ( + + toggleSubstep(index + 1)} selected={currentSubstep === (index + 1)} divider> + + {substep.name as string} + + + + + + + + + ))} + + + + + {anchorEl &&