UNPKG

@ricepuddin/redux-segment

Version:

Segment.io analytics integration for redux.

51 lines (41 loc) 916 B
import { LOGIN_USER_PENDING, LOGIN_USER_SUCCESS, LOGIN_USER_ERROR, LOGOUT_USER, } from '../constants'; import { fromJS } from 'immutable'; const INITIAL_STATE = fromJS({ token: null, user: {}, hasError: false, isLoading: false, }); function sessionReducer(state = INITIAL_STATE, action = {}) { switch (action.type) { case LOGIN_USER_PENDING: return state.merge(fromJS({ token: null, user: {}, hasError: false, isLoading: true, })); case LOGIN_USER_SUCCESS: return state.merge(fromJS({ token: action.payload.token, user: action.payload.profile, hasError: false, isLoading: false, })); case LOGIN_USER_ERROR: return state.merge(fromJS({ hasError: true, isLoading: false, })); case LOGOUT_USER: return state.merge(INITIAL_STATE); default: return state; } } export default sessionReducer;