You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

106 lines
2.3 KiB

import {
IS_SENDING_AUTH_REQUEST,
SET_AUTH_REQUEST_ERROR,
CLEAR_AUTH_REQUEST_ERROR,
SET_AUTH_REQUEST_SUCCESS,
CLEAR_AUTH_REQUEST_SUCCESS,
SET_SELF_USER_TOKEN,
SET_FORM_EMAIL,
SET_FORM_PASSWORD,
SET_FORM_PASSWORD_CONFIRMATION,
SET_FORM_EMAIL_VERIFICATION,
SET_FORM_OLD_PASSWORD,
SET_CLEAR_AUTH_STATE
} from "../constants/auth.constants";
/**
* Set the user's auth token, and return the value
* @param {string} newToken
*/
function me(newToken) {
if (typeof newToken === "string") {
localStorage.setItem("userToken", newToken);
}
const userToken = localStorage.getItem("userToken");
return userToken ? userToken : "";
}
const initialState = {
isSendingAuthRequest: false,
authRequestError: "",
authRequestSuccess: "",
userToken: me(null),
email: "",
password: "",
passwordConfirmation: "",
emailVerificationString: "",
oldPassword: "" // used for change password functionality
};
function authReducer(state = initialState, action) {
switch (action.type) {
case IS_SENDING_AUTH_REQUEST:
return {
...state,
isSendingAuthRequest: action.data
};
case SET_AUTH_REQUEST_ERROR:
return {
...state,
authRequestError: action.data
};
case CLEAR_AUTH_REQUEST_ERROR:
return {
...state,
authRequestError: ""
};
case SET_AUTH_REQUEST_SUCCESS:
return {
...state,
authRequestSuccess: action.data
};
case CLEAR_AUTH_REQUEST_SUCCESS:
return {
...state,
authRequestSuccess: ""
};
case SET_SELF_USER_TOKEN:
return {
...state,
userToken: me(action.data)
};
case SET_FORM_EMAIL:
return {
...state,
email: action.data
};
case SET_FORM_PASSWORD:
return {
...state,
password: action.data
};
case SET_FORM_PASSWORD_CONFIRMATION:
return {
...state,
passwordConfirmation: action.data
};
case SET_FORM_EMAIL_VERIFICATION:
return {
...state,
emailVerificationString: action.data
};
case SET_FORM_OLD_PASSWORD:
return {
...state,
oldPassword: action.data
};
case SET_CLEAR_AUTH_STATE:
return {
...initialState
};
default:
return state;
}
}
export default authReducer;