instantjob-recruiter-client
Version:
a set of tools for creating an instantjob recruiter react client
52 lines (39 loc) • 1.78 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.get_teams = exports.get_recruiters = undefined;
var _extends2 = require('babel-runtime/helpers/extends');
var _extends3 = _interopRequireDefault(_extends2);
var _base = require('selectors/base');
var _store = require('common/store');
var _store2 = _interopRequireDefault(_store);
var _recruiters = require('common/recruiters');
var _utilities = require('common/utilities');
var _recruiters2 = require('actions/recruiters');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var get_raw_teams = function get_raw_teams(state) {
return state.recruiters.teams;
};
var get_raw_recruiters = function get_raw_recruiters(state) {
return state.recruiters.recruiters;
};
var get_recruiters = exports.get_recruiters = (0, _base.tolerant_selector)([get_raw_recruiters, get_raw_teams], function (recruiters, teams) {
return (0, _utilities.map_hash)(recruiters, function (recruiter) {
return (0, _extends3.default)({}, recruiter, {
full_name: (0, _recruiters.recruiter_full_name)(recruiter),
team: recruiter.team_id ? teams[recruiter.team_id] || {} : null,
update: function update(new_recruiter) {
(0, _recruiters.action_update_recruiter)((0, _extends3.default)({ id: recruiter.id }, new_recruiter));
if ((0, _utilities.array_from_hash)(recruiters).filter(function (_ref) {
var id = _ref.id,
team_id = _ref.team_id;
return id != recruiter.id && team_id == recruiter.team_id;
}).length == 0) {
_store2.default.dispatch((0, _recruiters2.remove_team)(recruiter.team_id));
}
}
});
});
});
var get_teams = exports.get_teams = get_raw_teams;