IO-761 User Reset updates

This commit is contained in:
Patrick Fic
2021-03-17 13:52:58 -07:00
parent 7cb13d289c
commit b3003249ae
5 changed files with 47 additions and 5 deletions

View File

@@ -4,7 +4,10 @@ import { useTranslation } from "react-i18next";
import { connect } from "react-redux";
import { createStructuredSelector } from "reselect";
import ImEXOnlineLogo from "../../assets/logo192.png";
import { sendPasswordReset } from "../../redux/user/user.actions";
import {
sendPasswordReset,
sendPasswordResetAgain,
} from "../../redux/user/user.actions";
import { selectPasswordReset } from "../../redux/user/user.selectors";
import AlertComponent from "../alert/alert.component";
import "./user-request-pw-reset.styles.scss";
@@ -14,9 +17,14 @@ const mapStateToProps = createStructuredSelector({
});
const mapDispatchToProps = (dispatch) => ({
sendPasswordReset: (email) => dispatch(sendPasswordReset(email)),
sendPasswordResetAgain: (email) => dispatch(sendPasswordResetAgain(email)),
});
export function UserRequestResetPw({ passwordReset, sendPasswordReset }) {
export function UserRequestResetPw({
passwordReset,
sendPasswordReset,
sendPasswordResetAgain,
}) {
const handleFinish = (values) => {
try {
sendPasswordReset(values.email);
@@ -35,7 +43,8 @@ export function UserRequestResetPw({ passwordReset, sendPasswordReset }) {
extra={[
<Button
key="send-again"
onClick={() => sendPasswordReset(passwordReset.email)}
onClick={() => sendPasswordResetAgain(passwordReset.email)}
loading={passwordReset.loading}
>
{t("general.labels.sendagain")}
</Button>,
@@ -68,7 +77,12 @@ export function UserRequestResetPw({ passwordReset, sendPasswordReset }) {
{passwordReset.error ? (
<AlertComponent message={passwordReset.error} type="warning" />
) : null}
<Button className="login-btn" type="primary" htmlType="submit">
<Button
className="login-btn"
type="primary"
htmlType="submit"
loading={passwordReset.loading}
>
{t("general.actions.submit")}
</Button>
</Form>

View File

@@ -77,6 +77,12 @@ export const sendPasswordReset = (email) => ({
type: UserActionTypes.SEND_PASSWORD_RESET_EMAIL_START,
payload: email,
});
export const sendPasswordResetAgain = (email) => ({
type: UserActionTypes.SEND_PASSWORD_RESET_EMAIL_START_AGAIN,
payload: email,
});
export const sendPasswordResetFailure = (error) => ({
type: UserActionTypes.SEND_PASSWORD_RESET_EMAIL_FAILURE,
payload: error,

View File

@@ -13,6 +13,7 @@ const INITIAL_STATE = {
email: null,
error: null,
success: false,
loading: false,
},
authLevel: 0,
};
@@ -33,6 +34,17 @@ const userReducer = (state = INITIAL_STATE, action) => {
email: action.payload,
error: null,
success: false,
loading: true,
},
};
case UserActionTypes.SEND_PASSWORD_RESET_EMAIL_START_AGAIN:
return {
...state,
passwordreset: {
email: action.payload,
error: null,
success: true,
loading: true,
},
};
case UserActionTypes.VALIDATE_PASSWORD_RESET_FAILURE:
@@ -42,7 +54,11 @@ const userReducer = (state = INITIAL_STATE, action) => {
case UserActionTypes.SEND_PASSWORD_RESET_EMAIL_SUCCESS:
return {
...state,
passwordreset: { ...state.passwordreset, success: true },
passwordreset: {
...state.passwordreset,
success: true,
loading: false,
},
};
case UserActionTypes.SIGN_IN_SUCCESS:
return {

View File

@@ -170,6 +170,10 @@ export function* onSendPasswordResetStart() {
UserActionTypes.SEND_PASSWORD_RESET_EMAIL_START,
sendPasswordResetEmail
);
yield takeLatest(
UserActionTypes.SEND_PASSWORD_RESET_EMAIL_START_AGAIN,
sendPasswordResetEmail
);
}
export function* sendPasswordResetEmail({ payload }) {
try {

View File

@@ -21,6 +21,8 @@ const UserActionTypes = {
SET_INSTANCE_CONFLICT: "SET_INSTANCE_CONFLICT",
SET_LOCAL_FINGERPRINT: "SET_LOCAL_FINGERPRINT",
SEND_PASSWORD_RESET_EMAIL_START: "SEND_PASSWORD_RESET_EMAIL_START",
SEND_PASSWORD_RESET_EMAIL_START_AGAIN:
"SEND_PASSWORD_RESET_EMAIL_START_AGAIN",
SEND_PASSWORD_RESET_EMAIL_FAILURE: "SEND_PASSWORD_RESET_EMAIL_FAILURE",
SEND_PASSWORD_RESET_EMAIL_SUCCESS: "SEND_PASSWORD_RESET_EMAIL_SUCCESS",
VALIDATE_PASSWORD_RESET_START: "VALIDATE_PASSWORD_RESET_START",