react-post-cra-boilerplate
Version:
Simple scripts to setup reactjs project the way i prefer
42 lines (34 loc) • 1.34 kB
JavaScript
import api from '../api/';
import {handleFormSubmitError} from '../utils/validators';
const action_login_succeeded = 'LOGIN_SUCCEEDED';
const action_signup_succeeded = 'LOGIN_SIGNUP_SUCCEEDED';
const action_login_signout = 'LOGIN_SIGNOUT';
export const requestLogin = (loginInfo) => (dispatch, getState) => {
return api.User.Login(loginInfo).then((data) => dispatch({
type: action_login_succeeded,
payload: data
}), handleFormSubmitError);
};
export const requestSignUp = (user) => (dispatch, getState) => {
api.User.Register(user).then((data) => dispatch({
type: action_signup_succeeded,
payload: data
}), handleFormSubmitError);
};
export const requestSignOut = () => (dispatch, getState) => dispatch({ type: action_login_signout });
const initialState = {
loggedUser: undefined
};
const auth = (state = initialState, action) => {
switch (action.type) {
case action_login_succeeded:
return { ...state, loggedUser: action.payload };
case action_signup_succeeded:
return { ...state, loggedUser: action.payload };
case action_login_signout:
return { ...state, loggedUser: initialState.loggedUser };
default:
return state;
}
};
export default auth;