import { useTranslation } from "react-i18next"; import { Form, type FormInstance, Input } from "antd"; import { createSchemaFieldRule } from "antd-zod"; import { z } from "zod"; type DeployNodeConfigFormAWSIAMConfigFieldValues = Nullish<{ region: string; certificatePath?: string; }>; export type DeployNodeConfigFormAWSIAMConfigProps = { form: FormInstance; formName: string; disabled?: boolean; initialValues?: DeployNodeConfigFormAWSIAMConfigFieldValues; onValuesChange?: (values: DeployNodeConfigFormAWSIAMConfigFieldValues) => void; }; const initFormModel = (): DeployNodeConfigFormAWSIAMConfigFieldValues => { return { certificatePath: "/", }; }; const DeployNodeConfigFormAWSIAMConfig = ({ form: formInst, formName, disabled, initialValues, onValuesChange }: DeployNodeConfigFormAWSIAMConfigProps) => { const { t } = useTranslation(); const formSchema = z.object({ region: z .string({ message: t("workflow_node.deploy.form.aws_iam_region.placeholder") }) .nonempty(t("workflow_node.deploy.form.aws_iam_region.placeholder")) .trim(), certificatePath: z .string() .nullish() .refine((v) => { if (!v) return true; return v.startsWith("/") && v.endsWith("/"); }, t("workflow_node.deploy.form.aws_iam_certificate_path.errmsg.invalid")), }); const formRule = createSchemaFieldRule(formSchema); const handleFormChange = (_: unknown, values: z.infer) => { onValuesChange?.(values); }; return (
} > } >
); }; export default DeployNodeConfigFormAWSIAMConfig;