import { Button, Checkbox, FormControl, FormErrorMessage, FormLabel, Input, Modal, ModalOverlay, ModalContent, ModalHeader, ModalCloseButton, ModalBody, ModalFooter, Stack, useToast, } from "@chakra-ui/react"; import { CertificateAuthority } from "api/npm"; import { PrettyButton } from "components"; import { Formik, Form, Field } from "formik"; import { useSetCertificateAuthority } from "hooks"; import { intl } from "locale"; import { validateNumber, validateString } from "modules/Validations"; interface CertificateCreateModalProps { isOpen: boolean; onClose: () => void; } function CertificateCreateModal({ isOpen, onClose, }: CertificateCreateModalProps) { const toast = useToast(); const { mutate: setCertificateAuthority } = useSetCertificateAuthority(); const onSubmit = async ( payload: CertificateAuthority, { setErrors, setSubmitting }: any, ) => { const showErr = (msg: string) => { toast({ description: intl.formatMessage({ id: `error.${msg}`, }), status: "error", position: "top", duration: 3000, isClosable: true, }); }; setCertificateAuthority(payload, { onError: (err: any) => { if (err.message === "ca-bundle-does-not-exist") { setErrors({ caBundle: intl.formatMessage({ id: `error.${err.message}`, }), }); } else { showErr(err.message); } }, onSuccess: () => onClose(), onSettled: () => setSubmitting(false), }); }; return ( {({ isSubmitting }) => (
{intl.formatMessage({ id: "certificate-authority.create" })} {({ field, form }: any) => ( {intl.formatMessage({ id: "certificate-authority.name", })} {form.errors.name} )} {({ field, form }: any) => ( {intl.formatMessage({ id: "certificate-authority.acmesh-server", })} {form.errors.acmeshServer} )} {({ field, form }: any) => ( {intl.formatMessage({ id: "certificate-authority.ca-bundle", })} {form.errors.caBundle} )} {({ field, form }: any) => ( {intl.formatMessage({ id: "certificate-authority.max-domains", })} {form.errors.maxDomains} )} {({ field, form }: any) => ( {intl.formatMessage({ id: "certificate-authority.has-wildcard-support", })} {form.errors.isWildcardSupported} )} {intl.formatMessage({ id: "form.save" })} )}
); } export { CertificateCreateModal };