add access to deployment

This commit is contained in:
yoan
2024-11-13 13:20:47 +08:00
parent fd04cec606
commit 52f40d982d
29 changed files with 1120 additions and 88 deletions

View File

@@ -15,6 +15,9 @@ import { Button } from "../ui/button";
import { useEffect, useState } from "react";
import { Select, SelectContent, SelectGroup, SelectItem, SelectTrigger, SelectValue } from "../ui/select";
import { SelectLabel } from "@radix-ui/react-select";
import AccessSelect from "./AccessSelect";
import AccessEditDialog from "../certimate/AccessEditDialog";
import { Plus } from "lucide-react";
type TencentResourceType = "ssl-deploy" | "loadbalancer" | "listener" | "ruledomain";
@@ -43,6 +46,7 @@ const DeployToTencentCLB = ({ data }: DeployFormProps) => {
const formSchema = z
.object({
providerType: z.string(),
access: z.string().min(1, t("domain.deployment.form.access.placeholder")),
certificate: z.string().min(1),
region: z.string().min(1, t("domain.deployment.form.tencent_clb_region.placeholder")),
resourceType: z.union([z.literal("ssl-deploy"), z.literal("loadbalancer"), z.literal("listener"), z.literal("ruledomain")], {
@@ -76,7 +80,8 @@ const DeployToTencentCLB = ({ data }: DeployFormProps) => {
let config: WorkflowNodeConfig = {
certificate: "",
providerType: "tencent-clb",
providerType: "",
access: "",
resouceType: "",
domain: "",
loadbalancerId: "",
@@ -87,7 +92,8 @@ const DeployToTencentCLB = ({ data }: DeployFormProps) => {
const form = useForm<z.infer<typeof formSchema>>({
resolver: zodResolver(formSchema),
defaultValues: {
providerType: config.providerType as string,
providerType: "tencent-clb",
access: config.access as string,
certificate: config.certificate as string,
region: config.region as string,
resourceType: config.resourceType as TencentResourceType,
@@ -112,6 +118,41 @@ const DeployToTencentCLB = ({ data }: DeployFormProps) => {
}}
className="space-y-8"
>
<FormField
control={form.control}
name="access"
render={({ field }) => (
<FormItem>
<FormLabel className="flex justify-between">
<div>{t("domain.deployment.form.access.label")}</div>
<AccessEditDialog
trigger={
<div className="font-normal text-primary hover:underline cursor-pointer flex items-center">
<Plus size={14} />
{t("common.add")}
</div>
}
op="add"
outConfigType="tencent"
/>
</FormLabel>
<FormControl>
<AccessSelect
{...field}
value={field.value}
onValueChange={(value) => {
form.setValue("access", value);
}}
providerType="tencent-clb"
/>
</FormControl>
<FormMessage />
</FormItem>
)}
/>
<FormField
control={form.control}
name="certificate"