import { useQueryClient } from "@tanstack/react-query"; import EasyModal, { type InnerModalProps } from "ez-modal-react"; import { Form, Formik } from "formik"; import { type ReactNode, useState } from "react"; import { Alert } from "react-bootstrap"; import Modal from "react-bootstrap/Modal"; import { createCertificate } from "src/api/backend"; import { Button, DNSProviderFields, DomainNamesField } from "src/components"; import { T } from "src/locale"; import { showObjectSuccess } from "src/notifications"; const showDNSCertificateModal = () => { EasyModal.show(DNSCertificateModal); }; const DNSCertificateModal = EasyModal.create(({ visible, remove }: InnerModalProps) => { const queryClient = useQueryClient(); const [errorMsg, setErrorMsg] = useState(null); const [isSubmitting, setIsSubmitting] = useState(false); const onSubmit = async (values: any, { setSubmitting }: any) => { if (isSubmitting) return; setIsSubmitting(true); setErrorMsg(null); try { await createCertificate(values); showObjectSuccess("certificate", "saved"); remove(); } catch (err: any) { setErrorMsg(); } queryClient.invalidateQueries({ queryKey: ["certificates"] }); setIsSubmitting(false); setSubmitting(false); }; return ( {() => (
setErrorMsg(null)} dismissible> {errorMsg}
)}
); }); export { showDNSCertificateModal };