diff --git a/src/route-widgets/GlobalSettingsRoute/SettingsForm.tsx b/src/route-widgets/GlobalSettingsRoute/SettingsForm.tsx index d89ab24..db9faa9 100644 --- a/src/route-widgets/GlobalSettingsRoute/SettingsForm.tsx +++ b/src/route-widgets/GlobalSettingsRoute/SettingsForm.tsx @@ -2,20 +2,23 @@ import * as yup from "yup" import {useFormik} from "formik" import {TbCursorText} from "react-icons/tb" import {useTranslation} from "react-i18next" +import {MdCheck, MdOutlineChangeCircle, MdTextFormat} from "react-icons/md" +import {BsImage} from "react-icons/bs" import { Checkbox, FormControlLabel, FormGroup, FormHelperText, + Grid, InputAdornment, TextField, + Typography, } from "@mui/material" +import {LoadingButton} from "@mui/lab" import {AdminSettings} from "~/server-types" -import {SimpleForm, StringPoolField, createPool} from "~/components" -import {MdOutlineChangeCircle, MdTextFormat} from "react-icons/md" -import {BsImage} from "react-icons/bs" +import {StringPoolField, createPool} from "~/components" export interface SettingsFormProps { settings: AdminSettings @@ -79,285 +82,356 @@ export default function SettingsForm({settings}: SettingsFormProps) { return (
- - {[ - - - - ), - }} - />, - - - - } - />, - - - - ), - }} - />, - - - - ), - }} - />, - - - - ), - }} - />, - - - - ), - }} - />, - - - } - label={t("routes.AdminRoute.forms.settings.enableImageProxy.label")} - /> - - {(formik.touched.enableImageProxy && formik.errors.enableImageProxy) || - t("routes.AdminRoute.forms.settings.enableImageProxy.description")} - - , - - - } - label={t( - "routes.AdminRoute.forms.settings.userEmailEnableDisposableEmails.label", - )} - /> - - {(formik.touched.userEmailEnableDisposableEmails && - formik.errors.userEmailEnableDisposableEmails) || - t( - "routes.AdminRoute.forms.settings.userEmailEnableDisposableEmails.description", + + + + + {t("routes.AdminRoute.settings.title")} + + + + + {t("routes.AdminRoute.settings.description")} + + + + + + + + - , - - - } - label={t( - "routes.AdminRoute.forms.settings.userEmailEnableOtherRelays.label", - )} - /> - - {(formik.touched.userEmailEnableOtherRelays && - formik.errors.userEmailEnableOtherRelays) || - t( - "routes.AdminRoute.forms.settings.userEmailEnableOtherRelays.description", + name="randomEmailIdMinLength" + value={formik.values.randomEmailIdMinLength} + onChange={formik.handleChange} + error={ + formik.touched.randomEmailIdMinLength && + Boolean(formik.errors.randomEmailIdMinLength) + } + helperText={ + (formik.touched.randomEmailIdMinLength && + formik.errors.randomEmailIdMinLength) || + t( + "routes.AdminRoute.forms.settings.randomEmailIdMinLength.description", + ) + } + type="number" + disabled={formik.isSubmitting} + inputMode="numeric" + InputProps={{ + startAdornment: ( + + + + ), + }} + /> + + + - , - - + + + } + /> + + + + + + ), + }} + /> + + + + + + ), + }} + /> + + + + + + } + /> + + + + + + ), + }} + /> + + + + + } + label={t( + "routes.AdminRoute.forms.settings.userEmailEnableDisposableEmails.label", + )} /> - } - label={t("routes.AdminRoute.forms.settings.allowStatistics.label")} - /> - - {(formik.touched.allowStatistics && formik.errors.allowStatistics) || - t("routes.AdminRoute.forms.settings.allowStatistics.description")} - - , - ]} - + + {(formik.touched.userEmailEnableDisposableEmails && + formik.errors.userEmailEnableDisposableEmails) || + t( + "routes.AdminRoute.forms.settings.userEmailEnableDisposableEmails.description", + )} + + + + + + + } + label={t( + "routes.AdminRoute.forms.settings.userEmailEnableOtherRelays.label", + )} + /> + + {(formik.touched.userEmailEnableOtherRelays && + formik.errors.userEmailEnableOtherRelays) || + t( + "routes.AdminRoute.forms.settings.userEmailEnableOtherRelays.description", + )} + + + + + + + } + label={t( + "routes.AdminRoute.forms.settings.enableImageProxy.label", + )} + /> + + {(formik.touched.enableImageProxy && + formik.errors.enableImageProxy) || + t( + "routes.AdminRoute.forms.settings.enableImageProxy.description", + )} + + + + + + + } + label={t( + "routes.AdminRoute.forms.settings.allowStatistics.label", + )} + /> + + {(formik.touched.allowStatistics && + formik.errors.allowStatistics) || + t( + "routes.AdminRoute.forms.settings.allowStatistics.description", + )} + + + + + + + + + } + > + {t("general.saveLabel")} + + + + +
) }