import {useFormContext} from 'react-hook-form'; import {AdminSettings} from '../../admin-settings'; import {ComponentType, Fragment} from 'react'; import {MailgunCredentials} from './mailgun-credentials'; import {SmtpCredentials} from './smtp-credentials'; import {SesCredentials} from './ses-credentials'; import {PostmarkCredentials} from './postmark-credentials'; import {GmailCredentials} from './gmail-credentials'; import {SettingsErrorGroup} from '../../settings-error-group'; import {FormSelect, Option} from '../../../../ui/forms/select/select'; import {Trans} from '../../../../i18n/trans'; import {LearnMoreLink} from '../../learn-more-link'; export function OutgoingMailGroup() { const {watch, clearErrors} = useFormContext(); const selectedDrivers = [ watch('server.mail_driver'), watch('client.mail.handler'), ]; const credentialForms: ComponentType<{isInvalid: boolean}>[] = []; if (selectedDrivers.includes('mailgun')) { credentialForms.push(MailgunCredentials); } if (selectedDrivers.includes('smtp')) { credentialForms.push(SmtpCredentials); } if (selectedDrivers.includes('ses')) { credentialForms.push(SesCredentials); } if (selectedDrivers.includes('postmark')) { credentialForms.push(PostmarkCredentials); } if (selectedDrivers.includes('gmailApi')) { credentialForms.push(GmailCredentials); } return ( {isInvalid => ( { clearErrors(); }} invalid={isInvalid} selectionMode="single" name="server.mail_driver" label={} description={
} >
{credentialForms.length ? (
{credentialForms.map((CredentialsForm, index) => ( ))}
) : null}
)}
); }