loop-modules
Version:
Shared modules for the Loop product suite.
32 lines (31 loc) • 1.19 kB
JavaScript
import { initialState } from '../states/loop-document.state';
import { ActionTypes } from '../actions/loop-document.action';
export function reducer(state, action) {
if (state === void 0) { state = initialState; }
switch (action.type) {
case ActionTypes.QUERY:
return Object.assign({}, state, {
entries: state.entries.concat(action.payload)
});
case ActionTypes.ADD_SELECTED:
return Object.assign({}, state, {
selectedEntries: state.selectedEntries.concat(action.payload)
});
case ActionTypes.REMOVE_SELECTED:
return Object.assign({}, state, {
selectedEntries: state.selectedEntries.filter(function (value) {
return (action.payload.indexOf(value) === -1);
})
});
case ActionTypes.SET_ENTRIES:
return Object.assign({}, state, {
entries: action.payload
});
case ActionTypes.SET_SELECTED:
return Object.assign({}, state, {
selectedEntries: action.payload
});
default:
return state;
}
}