Source: reducers/user.js

import {
    SIGNUP_SUCCESSFULL,
    SIGNIN_SUCCESSFULL,
    LOGOUT
} from '../actions/types'
import Cookies from 'universal-cookie';
const cookies = new Cookies();

const initialState = {
    isSignedUp: false,
    isLoggedIn: false,
    layers: [],
}
/**
 * User reducer
 * @param  {} state=initialState
 * @param  {} action
 */
export const user = (state = initialState, action) => {
    switch (action.type) {

        case SIGNUP_SUCCESSFULL:
            return action.user;

        case SIGNIN_SUCCESSFULL:
            if(action.user.isLoggedIn) {
                let token = cookies.get('token');
                if(!token) {
                    if(action.user.token) {
                        cookies.set('token', action.user.token.token, { path: '/'});
                    }

                }
            } else {
                cookies.remove('token', { path: '/'});
            }
            return action.user;

        case LOGOUT:
            cookies.remove('token', { path: '/'});
            return {};

        case 'REMOVE_USER_SUCCESS':
            cookies.remove('token', { path: '/'});
            return {}

        case 'UPDATE_LAYERS_SUCCESS':
            return {
                isSignedUp: state.isSignedUp,
                isLoggedIn: state.isLoggedIn,
                user: state.user,
                layers: action.layers
            }

        default:
        return state;
    }
}