loop-modules
Version:
Shared modules for the Loop product suite.
40 lines (39 loc) • 1.51 kB
JavaScript
import { initialState } from '../states/employee.state';
import { ActionTypes } from '../actions/employee.action';
export function reducer(state, action) {
if (state === void 0) { state = initialState; }
switch (action.type) {
case ActionTypes.SUBORDINATES:
return Object.assign({}, state, {
entries: state.entries.concat(action.payload)
});
case ActionTypes.SET_ENTRIES:
return Object.assign({}, state, {
entries: action.payload
});
case ActionTypes.SET_SELECTED:
return Object.assign({}, state, {
selectedEntries: action.payload
});
case ActionTypes.TOGGLE_SELECTED:
var selectedEntries = state.selectedEntries.slice();
if (selectedEntries.indexOf(action.payload) !== -1) {
selectedEntries.splice(selectedEntries.indexOf(action.payload), 1);
}
else {
selectedEntries.push(action.payload);
}
selectedEntries.sort(function (a, b) {
return (a.first_name + ' ' + a.last_name).localeCompare(b.first_name + ' ' + b.last_name);
});
return Object.assign({}, state, {
selectedEntries: selectedEntries
});
case ActionTypes.ACTIVE:
return Object.assign({}, state, {
active: action.payload
});
default:
return state;
}
}