import { useTranslation } from "react-i18next"; import { Form, type FormInstance, Input, Select } from "antd"; import { createSchemaFieldRule } from "antd-zod"; import { z } from "zod"; import { validDomainName } from "@/utils/validators"; type DeployNodeConfigFormBaishanCDNConfigFieldValues = Nullish<{ environment: string; domain: string; certificateId?: string; webhookId?: string; }>; export type DeployNodeConfigFormBaishanCDNConfigProps = { form: FormInstance; formName: string; disabled?: boolean; initialValues?: DeployNodeConfigFormBaishanCDNConfigFieldValues; onValuesChange?: (values: DeployNodeConfigFormBaishanCDNConfigFieldValues) => void; }; const ENVIRONMENT_PRODUCTION = "production" as const; const ENVIRONMENT_STAGING = "stating" as const; const initFormModel = (): DeployNodeConfigFormBaishanCDNConfigFieldValues => { return { environment: ENVIRONMENT_PRODUCTION, }; }; const DeployNodeConfigFormBaishanCDNConfig = ({ form: formInst, formName, disabled, initialValues, onValuesChange, }: DeployNodeConfigFormBaishanCDNConfigProps) => { const { t } = useTranslation(); const formSchema = z.object({ resourceType: z.union([z.literal(ENVIRONMENT_PRODUCTION), z.literal(ENVIRONMENT_STAGING)], { message: t("workflow_node.deploy.form.wangsu_cdnpro_environment.placeholder"), }), domain: z .string({ message: t("workflow_node.deploy.form.wangsu_cdnpro_domain.placeholder") }) .refine((v) => validDomainName(v, { allowWildcard: true }), t("common.errmsg.domain_invalid")), certificateId: z.string().nullish(), webhookId: z.string().nullish(), }); const formRule = createSchemaFieldRule(formSchema); const handleFormChange = (_: unknown, values: z.infer) => { onValuesChange?.(values); }; return (
} > } > } >
); }; export default DeployNodeConfigFormBaishanCDNConfig;