diff --git a/packages/web/src/components/ChooseAppAndEventSubstep/index.jsx b/packages/web/src/components/ChooseAppAndEventSubstep/index.jsx
index d71d82c8..f3054325 100644
--- a/packages/web/src/components/ChooseAppAndEventSubstep/index.jsx
+++ b/packages/web/src/components/ChooseAppAndEventSubstep/index.jsx
@@ -14,6 +14,7 @@ import useApps from 'hooks/useApps';
import { EditorContext } from 'contexts/Editor';
import FlowSubstepTitle from 'components/FlowSubstepTitle';
import { StepPropType, SubstepPropType } from 'propTypes/propTypes';
+import useTriggers from 'hooks/useTriggers';
const optionGenerator = (app) => ({
label: app.name,
@@ -49,18 +50,22 @@ function ChooseAppAndEventSubstep(props) {
onlyWithActions: isAction,
});
- const app = apps?.data?.find((currentApp) => currentApp.key === step.appKey);
+ const app = apps?.data?.find(
+ (currentApp) => currentApp?.key === step?.appKey,
+ );
+
+ const { data: triggers } = useTriggers(app?.key);
const appOptions = React.useMemo(
() => apps?.data?.map((app) => optionGenerator(app)) || [],
[apps?.data],
);
- const actionsOrTriggers = (isTrigger ? app?.triggers : app?.actions) || [];
+ const actionsOrTriggers = (isTrigger ? triggers?.data : app?.actions) || [];
const actionOrTriggerOptions = React.useMemo(
() => actionsOrTriggers.map((trigger) => eventOptionGenerator(trigger)),
- [app?.key],
+ [app?.key, actionsOrTriggers],
);
const selectedActionOrTrigger = actionsOrTriggers.find(
diff --git a/packages/web/src/components/FlowStep/index.jsx b/packages/web/src/components/FlowStep/index.jsx
index b4c16fc0..cabd3f68 100644
--- a/packages/web/src/components/FlowStep/index.jsx
+++ b/packages/web/src/components/FlowStep/index.jsx
@@ -36,6 +36,7 @@ import {
} from './style';
import isEmpty from 'helpers/isEmpty';
import { StepPropType } from 'propTypes/propTypes';
+import useTriggers from 'hooks/useTriggers';
const validIcon = ;
const errorIcon = ;
@@ -140,7 +141,13 @@ function FlowStep(props) {
]);
const app = apps?.data?.find((currentApp) => currentApp.key === step.appKey);
- const actionsOrTriggers = (isTrigger ? app?.triggers : app?.actions) || [];
+
+ const { data: triggers } = useTriggers(app?.key);
+
+ console.log('triggers:', triggers);
+
+ const actionsOrTriggers = (isTrigger ? triggers?.data : app?.actions) || [];
+
const actionOrTrigger = actionsOrTriggers?.find(
({ key }) => key === step.key,
);
diff --git a/packages/web/src/hooks/useTriggers.js b/packages/web/src/hooks/useTriggers.js
new file mode 100644
index 00000000..cf029cd0
--- /dev/null
+++ b/packages/web/src/hooks/useTriggers.js
@@ -0,0 +1,18 @@
+import { useQuery } from '@tanstack/react-query';
+
+import api from 'helpers/api';
+
+export default function useTriggers(appKey) {
+ const query = useQuery({
+ queryKey: ['triggers', appKey],
+ queryFn: async ({ payload, signal }) => {
+ const { data } = await api.get(`/v1/apps/${appKey}/triggers`, {
+ signal,
+ });
+
+ return data;
+ },
+ });
+
+ return query;
+}