UNPKG

instantjob-recruiter-client

Version:

a set of tools for creating an instantjob recruiter react client

86 lines (66 loc) 3.31 kB
'use strict'; 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); }