120 lines
3.1 KiB
JavaScript
120 lines
3.1 KiB
JavaScript
import UserActionTypes from "./user.types";
|
|
|
|
const INITIAL_STATE = {
|
|
currentUser: {
|
|
authorized: null,
|
|
//language: "en-US"
|
|
},
|
|
bodyshop: null,
|
|
loginLoading: false,
|
|
fingerprint: null,
|
|
error: null,
|
|
conflict: false,
|
|
passwordreset: {
|
|
email: null,
|
|
error: null,
|
|
success: false,
|
|
loading: false,
|
|
},
|
|
authLevel: 0,
|
|
};
|
|
|
|
const userReducer = (state = INITIAL_STATE, action) => {
|
|
switch (action.type) {
|
|
case UserActionTypes.SET_LOCAL_FINGERPRINT:
|
|
return { ...state, fingerprint: action.payload };
|
|
case UserActionTypes.SET_INSTANCE_ID:
|
|
return { ...state, conflict: false };
|
|
case UserActionTypes.SET_INSTANCE_CONFLICT:
|
|
return { ...state, conflict: true };
|
|
case UserActionTypes.EMAIL_SIGN_IN_START:
|
|
return { ...state, loginLoading: true };
|
|
case UserActionTypes.VALIDATE_PASSWORD_RESET_START:
|
|
case UserActionTypes.SEND_PASSWORD_RESET_EMAIL_START:
|
|
return {
|
|
...state,
|
|
passwordreset: {
|
|
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:
|
|
case UserActionTypes.SEND_PASSWORD_RESET_EMAIL_FAILURE:
|
|
return { ...state, passwordreset: { error: action.payload } };
|
|
case UserActionTypes.VALIDATE_PASSWORD_RESET_SUCCESS:
|
|
case UserActionTypes.SEND_PASSWORD_RESET_EMAIL_SUCCESS:
|
|
return {
|
|
...state,
|
|
passwordreset: {
|
|
...state.passwordreset,
|
|
success: true,
|
|
loading: false,
|
|
},
|
|
};
|
|
case UserActionTypes.SIGN_IN_SUCCESS:
|
|
return {
|
|
...state,
|
|
loginLoading: false,
|
|
currentUser: action.payload,
|
|
error: null,
|
|
};
|
|
case UserActionTypes.SIGN_OUT_SUCCESS:
|
|
return {
|
|
...state,
|
|
currentUser: { authorized: false },
|
|
error: null,
|
|
};
|
|
case UserActionTypes.UNAUTHORIZED_USER:
|
|
return {
|
|
...state,
|
|
error: null,
|
|
currentUser: { authorized: false },
|
|
};
|
|
case UserActionTypes.SET_USER_LANGUAGE:
|
|
return {
|
|
...state,
|
|
language: action.payload,
|
|
};
|
|
case UserActionTypes.UPDATE_USER_DETAILS_SUCCESS:
|
|
return {
|
|
...state,
|
|
currentUser: {
|
|
...state.currentUser,
|
|
...action.payload, //Spread current user details in.
|
|
},
|
|
};
|
|
|
|
case UserActionTypes.SET_SHOP_DETAILS:
|
|
return {
|
|
...state,
|
|
bodyshop: action.payload,
|
|
};
|
|
case UserActionTypes.SIGN_IN_FAILURE:
|
|
case UserActionTypes.SIGN_OUT_FAILURE:
|
|
case UserActionTypes.EMAIL_SIGN_UP_FAILURE:
|
|
return {
|
|
...state,
|
|
loginLoading: false,
|
|
error: action.payload,
|
|
};
|
|
case UserActionTypes.SET_AUTH_LEVEL:
|
|
return { ...state, authLevel: action.payload };
|
|
default:
|
|
return state;
|
|
}
|
|
};
|
|
|
|
export default userReducer;
|