diff --git a/client/src/Pages/Settings/SettingsEmail.jsx b/client/src/Pages/Settings/SettingsEmail.jsx index 38cc592da..09a6aeaae 100644 --- a/client/src/Pages/Settings/SettingsEmail.jsx +++ b/client/src/Pages/Settings/SettingsEmail.jsx @@ -11,6 +11,7 @@ import { useState } from "react"; import { useTranslation } from "react-i18next"; import { PasswordEndAdornment } from "../../Components/Inputs/TextInput/Adornments"; import { useSendTestEmail } from "../../Hooks/useSendTestEmail"; +import { createToast } from "../../Utils/toastUtils"; const SettingsEmail = ({ isAdmin, @@ -29,7 +30,7 @@ const SettingsEmail = ({ const [hasBeenReset, setHasBeenReset] = useState(false); // Network - const [isSending, error, sendTestEmail] = useSendTestEmail(); + const [isSending, , sendTestEmail] = useSendTestEmail(); // Using empty placeholder for unused error variable // Handlers const handlePasswordChange = (e) => { @@ -136,9 +137,31 @@ const SettingsEmail = ({ variant="contained" color="accent" loading={isSending} - onClick={sendTestEmail} + onClick={() => { + // Collect current form values + const emailConfig = { + systemEmailHost: settingsData?.settings?.systemEmailHost, + systemEmailPort: settingsData?.settings?.systemEmailPort, + systemEmailUser: settingsData?.settings?.systemEmailUser, + systemEmailAddress: settingsData?.settings?.systemEmailAddress, + systemEmailPassword: password || settingsData?.settings?.systemEmailPassword, + systemEmailConnectionHost: settingsData?.settings?.systemEmailConnectionHost + }; + + // Basic validation + if (!emailConfig.systemEmailHost || !emailConfig.systemEmailPort) { + createToast({ + body: t("settingsEmailRequiredFields", "Email host and port are required"), + variant: "error" + }); + return; + } + + // Send test email with current form values + sendTestEmail(emailConfig); + }} > - Send test e-mail + {t("settingsTestEmail", "Send test e-mail")}