forked from qodo-benchmark/prefect
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtrigger-step.tsx
More file actions
54 lines (49 loc) · 1.83 KB
/
trigger-step.tsx
File metadata and controls
54 lines (49 loc) · 1.83 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
import { useState } from "react";
import { useFormContext } from "react-hook-form";
import type { AutomationWizardSchema } from "@/components/automations/automations-wizard/automation-schema";
import {
AutomationsTriggerTemplateSelect,
type TriggerTemplate,
} from "@/components/automations/automations-wizard/automations-trigger-template-select";
import { CustomTriggerFields } from "./custom-trigger-fields";
import { DeploymentStatusTriggerFields } from "./deployment-status-trigger-fields";
import { FlowRunStateTriggerFields } from "./flow-run-state-trigger-fields";
import { getDefaultTriggerForTemplate } from "./trigger-step-utils";
import { WorkPoolStatusTriggerFields } from "./work-pool-status-trigger-fields";
import { WorkQueueStatusTriggerFields } from "./work-queue-status-trigger-fields";
export const TriggerStep = () => {
const form = useFormContext<AutomationWizardSchema>();
const [template, setTemplate] = useState<TriggerTemplate>();
const handleTemplateChange = (value: TriggerTemplate) => {
setTemplate(value);
form.setValue("trigger", getDefaultTriggerForTemplate(value));
};
return (
<div className="space-y-6">
<AutomationsTriggerTemplateSelect
value={template}
onValueChange={handleTemplateChange}
/>
{template && <TriggerTemplateFields template={template} />}
</div>
);
};
type TriggerTemplateFieldsProps = {
template: TriggerTemplate;
};
const TriggerTemplateFields = ({ template }: TriggerTemplateFieldsProps) => {
switch (template) {
case "flow-run-state":
return <FlowRunStateTriggerFields />;
case "deployment-status":
return <DeploymentStatusTriggerFields />;
case "work-pool-status":
return <WorkPoolStatusTriggerFields />;
case "work-queue-status":
return <WorkQueueStatusTriggerFields />;
case "custom":
return <CustomTriggerFields />;
default:
return null;
}
};