From ed528e7b5e6a650f248ed835f1c6d889e9b8eca4 Mon Sep 17 00:00:00 2001 From: Shekar Siri Date: Tue, 11 Feb 2025 16:37:15 +0100 Subject: [PATCH] change(api): reset password error message --- .../ForgotPassword/ResetPasswordRequest.tsx | 38 +++++++++++-------- frontend/app/mstore/userStore.ts | 5 --- 2 files changed, 22 insertions(+), 21 deletions(-) diff --git a/frontend/app/components/ForgotPassword/ResetPasswordRequest.tsx b/frontend/app/components/ForgotPassword/ResetPasswordRequest.tsx index b95ecf5e1..9df1bfcbb 100644 --- a/frontend/app/components/ForgotPassword/ResetPasswordRequest.tsx +++ b/frontend/app/components/ForgotPassword/ResetPasswordRequest.tsx @@ -3,7 +3,7 @@ import { Loader, Icon } from 'UI'; import ReCAPTCHA from 'react-google-recaptcha'; import { observer } from 'mobx-react-lite'; import { useStore } from 'App/mstore'; -import {Form, Input, Button } from 'antd' +import { Form, Input, Button, Typography } from 'antd'; function ResetPasswordRequest() { const { userStore } = useStore(); @@ -15,6 +15,7 @@ function ResetPasswordRequest() { const [error, setError] = React.useState(null); const CAPTCHA_ENABLED = window.env.CAPTCHA_ENABLED === 'true'; const CAPTCHA_SITE_KEY = window.env.CAPTCHA_SITE_KEY; + const [smtpError, setSmtpError] = React.useState(false); const write = (e: any) => { const { name, value } = e.target; @@ -35,13 +36,14 @@ function ResetPasswordRequest() { setError(null); requestResetPassword({ email: email.trim(), 'g-recaptcha-response': token }) - .then((response: any) => { - setRequested(true); - // if (response && response.errors && response.errors.length > 0) { - // setError(response.errors[0]); - // } - }).catch((err: any) => { - setRequested(false); + .catch((err: any) => { + if (err.message?.toLowerCase().includes('smtp')) { + setSmtpError(true); + } + + setError(err.message); + }).finally(() => { + setRequested(true); }); }; return ( @@ -92,14 +94,18 @@ function ResetPasswordRequest() { )} - {/*{error && (*/} - {/*
*/} - {/*
*/} - {/* */} - {/*
*/} - {/* {error}*/} - {/*
*/} - {/*)}*/} + {error && ( +
+
+ +
+ {smtpError ? ( + SMTP configuration is missing. Follow this guide to enable password reset. + ) : {error}} +
+ )} ); diff --git a/frontend/app/mstore/userStore.ts b/frontend/app/mstore/userStore.ts index a5cba59b5..6f515007d 100644 --- a/frontend/app/mstore/userStore.ts +++ b/frontend/app/mstore/userStore.ts @@ -402,12 +402,7 @@ class UserStore { this.loading = true; try { await userService.requestResetPassword(params); - // if (response.errors) { - // toast.error(response.errors[0] || 'Error resetting your password, please try again'); - // return response; - // } } catch (error) { - toast.error(error.message || 'Unexpected error resetting your password; please try again'); throw error; } finally { this.loading = false;