instantjob-recruiter-client
Version:
a set of tools for creating an instantjob recruiter react client
86 lines (66 loc) • 3.31 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
var _defineProperty2 = require('babel-runtime/helpers/defineProperty');
var _defineProperty3 = _interopRequireDefault(_defineProperty2);
var _extends8 = require('babel-runtime/helpers/extends');
var _extends9 = _interopRequireDefault(_extends8);
exports.store_items = store_items;
exports.update_item = update_item;
exports.update_items = update_items;
exports.remove_item = remove_item;
exports.filter_items = filter_items;
exports.create_item = create_item;
exports.update_item_id = update_item_id;
exports.add_item_id = add_item_id;
exports.remove_item_id = remove_item_id;
exports.toggle_item_id = toggle_item_id;
exports.update_item_ids_in_set = update_item_ids_in_set;
exports.update_item_id_in_set = update_item_id_in_set;
var _utilities = require('../common/utilities');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function store_items(state, items_name, items) {
return (0, _extends9.default)({}, state, (0, _defineProperty3.default)({}, items_name, (0, _extends9.default)({}, state[items_name], (0, _utilities.hash_with_key)(items))));
}
function update_item(state, items_name, item) {
return (0, _extends9.default)({}, state, (0, _defineProperty3.default)({}, items_name, (0, _extends9.default)({}, state[items_name], (0, _defineProperty3.default)({}, item.id, (0, _extends9.default)({}, state[items_name][item.id] || {}, item)))));
}
function update_items(state, items_name, items) {
return items.reduce(function (state, item) {
return update_item(state, items_name, item);
}, state);
}
function remove_item(state, items_name, item_id) {
var items = (0, _extends9.default)({}, state[items_name]);
if (items[item_id]) {
delete items[item_id];
}
return (0, _extends9.default)({}, state, (0, _defineProperty3.default)({}, items_name, items));
}
function filter_items(state, items_name, filter) {
return (0, _extends9.default)({}, state, (0, _defineProperty3.default)({}, items_name, (0, _utilities.filter_hash)(state[items_name], filter)));
}
function create_item(state, items_name, item) {
return store_items((0, _extends9.default)({}, state, { idGenerator: state.idGenerator - 1 }), items_name, [item]);
}
function update_item_id(state, items_name, item, temp_id) {
return store_items(remove_item(state, items_name, temp_id), items_name, [(0, _extends9.default)({}, state[items_name][temp_id], item)]);
}
function add_item_id(state, items_name, item_id) {
return update_item_id_in_set(state, items_name, item_id, true);
}
function remove_item_id(state, items_name, item_id) {
return update_item_id_in_set(state, items_name, item_id, false);
}
function toggle_item_id(state, items_name, item_id) {
return update_item_id_in_set(state, items_name, item_id, !state[items_name][item_id]);
}
function update_item_ids_in_set(state, items_name, item_ids, status) {
return (0, _extends9.default)({}, state, (0, _defineProperty3.default)({}, items_name, (0, _extends9.default)({}, state[items_name], (0, _utilities.create_hash)(item_ids, function () {
return status;
}))));
}
function update_item_id_in_set(state, items_name, item_id, status) {
return update_item_ids_in_set(state, items_name, [item_id], status);
}