import { PATRON_INSTANCE_FETCH_SUCCESS, PATRON_ACCOUNT_FETCH_SUCCESS, } from '../actions/patron'; import { Map as ImmutableMap, fromJS } from 'immutable'; const initialState = ImmutableMap(); const normalizePatronAccount = (state, account) => { const normalized = fromJS(account).deleteAll(['url']); return state.setIn(['accounts', account.url], normalized); }; export default function patron(state = initialState, action) { switch(action.type) { case PATRON_INSTANCE_FETCH_SUCCESS: return state.set('instance', fromJS(action.instance)); case PATRON_ACCOUNT_FETCH_SUCCESS: return normalizePatronAccount(state, action.account); default: return state; } }