initSetupReducer.js 1.9 KB
Newer Older
李彥志's avatar
李彥志 committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
import ActionTypes from '../../actions';
import InitialState from './initSetupInitialState';

const initialState = new InitialState();
export default function authReducer(state = initialState, action) {
  if (!(state instanceof InitialState)) return initialState.mergeDeep(state);
  switch (action.type) {
    case ActionTypes.GET_PERSONPROFILE_PERSONALINFO_REQUEST:
    case ActionTypes.UPDATE_PERSONAL_DEFINE_REQUEST:
    case ActionTypes.GET_PERSONAL_DEFINED_DATA_REQUEST:
    case ActionTypes.UPDATE_PERSONAL_DETAIL_REQUEST: {
      const nextState = state
        .setIn(['state'], action.type)
        .setIn(['isLoading'], true);
      return nextState;
    }
    case ActionTypes.GET_PERSONPROFILE_PERSONALINFO_SUCCESS:
    case ActionTypes.UPDATE_PERSONAL_DETAIL_SUCCESS: {
      return state
        .setIn(['state'], action.type)
        .setIn(['isLoading'], false)
        .setIn(['personalInfo'], action.payload);
    }
    case ActionTypes.GET_PERSONAL_DEFINED_DATA_SUCCESS: {
      return state
        .setIn(['state'], action.type)
        .setIn(['isLoading'], false)
        .setIn(['standardData'], action.payload);
    }
    case ActionTypes.UPDATE_PERSONAL_DEFINE_SUCCESS: {
      return state
        .setIn(['state'], action.type)
        .setIn(['isLoading'], false)
        .setIn(['standardData'], action.payload)
        .setIn(['isBlocking'], false);
    }
    case ActionTypes.GET_PERSONPROFILE_PERSONALINFO_FAILURE:
    case ActionTypes.UPDATE_PERSONAL_DETAIL_FAILURE: {
      return state.setIn(['state'], action.type).setIn(['isLoading'], false).setIn(['error'], action.payload);
    }
    case ActionTypes.GET_PERSONAL_DEFINED_DATA_FAILURE: {
      return state.setIn(['isLoading'], false).setIn(['error'], action.payload);
    }
    case ActionTypes.UPDATE_PERSONAL_DEFINE_FAILURE: {
      return state.setIn(['isLoading'], false).setIn(['error'], action.payload);
    }
    default:
  }
  return state;
}