instantjob-recruiter-client
Version:
a set of tools for creating an instantjob recruiter react client
34 lines (28 loc) • 1.11 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = shifts;
var _base = require('./base');
var _utilities = require('common/utilities');
var initial_state = {
shifts: {},
events: {}
};
function shifts() {
var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : initial_state;
var action = arguments[1];
switch (action.type) {
case "store_shifts":
return (0, _base.store_items)((0, _base.store_items)(state, "events", (0, _utilities.flatten_array)(action.shifts.map((0, _utilities.property_getter)("events")))), "shifts", action.shifts);
case "store_shift_events":
return (0, _base.store_items)(state, "events", action.events);
case "replace_shift_events":
return (0, _base.store_items)((0, _base.filter_items)((0, _base.update_item)(state, "shifts", { id: action.shift_id, filled: true }), "events", function (_ref) {
var calenderable_id = _ref.calenderable_id;
return calenderable_id != action.shift_id;
}), "events", action.events);
default:
return state;
}
}