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; } }