import ActionTypes from '../../actions'; import InitialState from './personProfileInitialState'; import appGlobal from '../../lib/common/AppGlobal'; 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: { const nextState = state .setIn(['state'], action.type) .setIn(['isLoading'], true); return nextState; } case ActionTypes.GET_PERSONPROFILE_EMRRELATIONSHIP_REQUEST: case ActionTypes.EDIT_PERSONALPHOTO_REQUEST: case ActionTypes.DELETE_PERSONALPHOTO_REQUEST: { const nextState = state .setIn(['state'], action.state) .setIn(['isLoading'], true); return nextState; } case ActionTypes.GET_PERSONPROFILE_EMRRELATIONSHIP_SUCCESS: { const nextState = state .setIn(['emrRelationships'], action.payload) .setIn(['isLoading'], false); return nextState; } case ActionTypes.EDIT_PERSONALPHOTO_SUCCESS: case ActionTypes.DELETE_PERSONALPHOTO_SUCCESS: { const nextState = state .setIn(['photo'], action.payload) .setIn(['isLoading'], false); return nextState; } case ActionTypes.GET_PERSONPROFILE_PERSONALINFO_SUCCESS: { const data = action.payload; const nextState = state .setIn(['data'], data) .setIn(['avatarSource'], appGlobal.avatarSource()) .setIn(['personalInfo'], action.payload) .setIn(['isLoading'], false) .setIn(['state'], action.type); return nextState; } case ActionTypes.EDIT_PERSONALPROFILE_SUCCESS: { const data = action.payload.user; const nextState = state .setIn(['data'], data) .setIn(['avatarSource'], appGlobal.avatarSource()) .setIn(['personalInfo'], action.payload) .setIn(['isLoading'], false) .setIn(['state'], action.type); return nextState; } case ActionTypes.GET_PERSONPROFILE_EMRRELATIONSHIP_FAILURE: case ActionTypes.GET_PERSONPROFILE_PERSONALINFO_FAILURE: { return state.setIn(['isLoading'], false).setIn(['error'], action.payload); } case ActionTypes.EDIT_PERSONALPHOTO_FAILURE: case ActionTypes.DELETE_PERSONALPHOTO_FAILURE: { return state.setIn(['isLoading'], false).setIn(['error'], action.payload); } default: } return state; }