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