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 &&