instantjob-recruiter-client
Version:
a set of tools for creating an instantjob recruiter react client
67 lines (56 loc) • 1.88 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
var _assign = require('babel-runtime/core-js/object/assign');
var _assign2 = _interopRequireDefault(_assign);
var _extends2 = require('babel-runtime/helpers/extends');
var _extends3 = _interopRequireDefault(_extends2);
exports.users = users;
var _base = require('./base');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var initial_state = {
users: {},
recruiter_users: [],
current_user: null,
current_recipient: null,
order_by: 'app_name',
order_ascending: false,
users_loaded: false
};
function users() {
var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : initial_state;
var action = arguments[1];
switch (action.type) {
case "store_users":
return (0, _base.store_items)((0, _extends3.default)({}, state, { users_loaded: true }), "users", action.users);
case "set_current_user":
return (0, _assign2.default)({}, state, {
current_user: action.user_id
});
case "set_current_recipient":
return (0, _assign2.default)({}, state, {
current_recipient: action.user_id
});
case "set_order_by":
if (action.order_by === state.order_by) {
return (0, _assign2.default)({}, state, {
order_ascending: !state.order_ascending
});
} else {
return (0, _assign2.default)({}, state, {
order_by: action.order_by
});
}
case "store_recruiter_users":
return (0, _extends3.default)({}, state, {
recruiter_users: action.recruiter_users
});
case "update_user":
return (0, _base.update_item)(state, "users", action.user);
case "update_users":
return (0, _base.update_items)(state, "users", action.users);
default:
return state;
}
}