diff --git a/frontend/app/components/ForgotPassword/ForgotPassword.js b/frontend/app/components/ForgotPassword/ForgotPassword.js index e931677bf..1cd40c679 100644 --- a/frontend/app/components/ForgotPassword/ForgotPassword.js +++ b/frontend/app/components/ForgotPassword/ForgotPassword.js @@ -3,7 +3,7 @@ import { connect } from 'react-redux'; import ReCAPTCHA from 'react-google-recaptcha'; import withPageTitle from 'HOCs/withPageTitle'; import { Form, Input, Loader, Button, Link, Icon, Message } from 'UI'; -import { requestResetPassword, resetPassword } from 'Duck/user'; +import { requestResetPassword, resetPassword, resetErrors } from 'Duck/user'; import { login as loginRoute } from 'App/routes'; import { withRouter } from 'react-router-dom'; import { validateEmail } from 'App/validate'; @@ -26,7 +26,7 @@ const checkDontMatch = (newPassword, newPasswordRepeat) => loading: state.getIn([ 'user', 'requestResetPassowrd', 'loading' ]) || state.getIn([ 'user', 'resetPassword', 'loading' ]), params: new URLSearchParams(props.location.search) }), - { requestResetPassword, resetPassword }, + { requestResetPassword, resetPassword, resetErrors }, ) @withPageTitle("Password Reset - OpenReplay") @withRouter @@ -42,7 +42,7 @@ export default class ForgotPassword extends React.PureComponent { }; handleSubmit = (token) => { - const { email, requested, code, password } = this.state; + const { email, password } = this.state; const { params } = this.props; const pass = params.get('pass') @@ -89,6 +89,10 @@ export default class ForgotPassword extends React.PureComponent { } } + componentWillUnmount() { + this.props.resetErrors() + } + render() { const { CAPTCHA_ENABLED } = this.state; const { errors, loading, params } = this.props; @@ -148,7 +152,7 @@ export default class ForgotPassword extends React.PureComponent { } { - requested && ( + requested && !errors && (
Reset password link has been sent to your email.
) } diff --git a/frontend/app/duck/user.js b/frontend/app/duck/user.js index b345cb053..f9cee9a34 100644 --- a/frontend/app/duck/user.js +++ b/frontend/app/duck/user.js @@ -15,6 +15,7 @@ const RESEND_EMAIL_VERIFICATION = new RequestTypes('user/RESEND_EMAIL_VERIFICATI const FETCH_CLIENT = new RequestTypes('user/FETCH_CLIENT'); export const UPDATE_PASSWORD = new RequestTypes('user/UPDATE_PASSWORD'); const PUT_CLIENT = new RequestTypes('user/PUT_CLIENT'); +const RESET_ERRORS = 'user/RESET_ERRORS'; const PUSH_NEW_SITE = 'user/PUSH_NEW_SITE'; const SET_ONBOARDING = 'user/SET_ONBOARDING'; @@ -52,6 +53,8 @@ export function setJwt(data) { const reducer = (state = initialState, action = {}) => { switch (action.type) { + case RESET_ERRORS: + return state.set('requestResetPassowrd', List()); case UPDATE_JWT: return state.set('jwt', action.data); case LOGIN.REQUEST: @@ -184,3 +187,9 @@ export function setOnboarding(state = false) { state }; } + +export function resetErrors() { + return { + type: RESET_ERRORS, + }; +} \ No newline at end of file