import React from 'react'; import { useTranslation } from 'next-i18next'; import AdminAppContainer from '~/client/services/AdminAppContainer'; import { toastSuccess, toastError } from '~/client/util/toastr'; import { withUnstatedContainers } from '../../UnstatedUtils'; import SesSetting from './SesSetting'; import SmtpSetting from './SmtpSetting'; type Props = { adminAppContainer: AdminAppContainer, } const MailSetting = (props: Props) => { const { t } = useTranslation(['admin', 'commons']); const { adminAppContainer } = props; const transmissionMethods = ['smtp', 'ses']; async function submitHandler() { try { await adminAppContainer.updateMailSettingHandler(); toastSuccess(t('toaster.update_successed', { target: t('admin:app_setting.mail_settings'), ns: 'commons' })); } catch (err) { toastError(err); } } async function sendTestEmailHandler() { const { adminAppContainer } = props; try { await adminAppContainer.sendTestEmail(); toastSuccess(t('admin:app_setting.success_to_send_test_email')); } catch (err) { toastError(err); } } return ( {!adminAppContainer.state.isMailerSetup && (
error {t('admin:app_setting.mailer_is_not_set_up')}
)}
{ adminAppContainer.changeFromAddress(e.target.value) }} />
{transmissionMethods.map((method) => { return (
{ adminAppContainer.changeTransmissionMethod(method); }} />
); })}
{adminAppContainer.state.transmissionMethod === 'smtp' && } {adminAppContainer.state.transmissionMethod === 'ses' && }
{adminAppContainer.state.transmissionMethod === 'smtp' && ( )}
); }; /** * Wrapper component for using unstated */ const MailSettingWrapper = withUnstatedContainers(MailSetting, [AdminAppContainer]); export default MailSettingWrapper;