import { Map as ImmutableMap } from 'immutable'; import { ACCOUNT_NOTE_INIT_EDIT, ACCOUNT_NOTE_CANCEL, ACCOUNT_NOTE_CHANGE_COMMENT, ACCOUNT_NOTE_SUBMIT_REQUEST, ACCOUNT_NOTE_SUBMIT_FAIL, ACCOUNT_NOTE_SUBMIT_SUCCESS, } from '../actions/account_notes'; const initialState = ImmutableMap({ edit: ImmutableMap({ isSubmitting: false, account_id: null, comment: null, }), }); export default function account_notes(state = initialState, action) { switch (action.type) { case ACCOUNT_NOTE_INIT_EDIT: return state.withMutations((state) => { state.setIn(['edit', 'isSubmitting'], false); state.setIn(['edit', 'account_id'], action.account.get('id')); state.setIn(['edit', 'comment'], action.comment); }); case ACCOUNT_NOTE_CHANGE_COMMENT: return state.setIn(['edit', 'comment'], action.comment); case ACCOUNT_NOTE_SUBMIT_REQUEST: return state.setIn(['edit', 'isSubmitting'], true); case ACCOUNT_NOTE_SUBMIT_FAIL: return state.setIn(['edit', 'isSubmitting'], false); case ACCOUNT_NOTE_SUBMIT_SUCCESS: case ACCOUNT_NOTE_CANCEL: return state.withMutations((state) => { state.setIn(['edit', 'isSubmitting'], false); state.setIn(['edit', 'account_id'], null); state.setIn(['edit', 'comment'], null); }); default: return state; } }