instantjob-recruiter-client
Version:
a set of tools for creating an instantjob recruiter react client
211 lines (172 loc) • 6.56 kB
JavaScript
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
var _extends2 = require('babel-runtime/helpers/extends');
var _extends3 = _interopRequireDefault(_extends2);
var _getPrototypeOf = require('babel-runtime/core-js/object/get-prototype-of');
var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf);
var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
var _createClass2 = require('babel-runtime/helpers/createClass');
var _createClass3 = _interopRequireDefault(_createClass2);
var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
var _inherits2 = require('babel-runtime/helpers/inherits');
var _inherits3 = _interopRequireDefault(_inherits2);
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _reactRedux = require('react-redux');
var _button = require('components/utils/button');
var _button2 = _interopRequireDefault(_button);
var _exclusive_field = require('components/exclusive_field');
var _exclusive_field2 = _interopRequireDefault(_exclusive_field);
var _check_box = require('components/utils/check_box');
var _check_box2 = _interopRequireDefault(_check_box);
var _new_recruiterReact = require('./new_recruiter.react.scss');
var _recruiters = require('selectors/recruiters');
var _auto_bind = require('common/auto_bind');
var _auto_bind2 = _interopRequireDefault(_auto_bind);
var _recruiters2 = require('common/recruiters');
var _utilities = require('common/utilities');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var NewRecruiter = function (_Component) {
(0, _inherits3.default)(NewRecruiter, _Component);
function NewRecruiter(props) {
(0, _classCallCheck3.default)(this, NewRecruiter);
var _this = (0, _possibleConstructorReturn3.default)(this, (NewRecruiter.__proto__ || (0, _getPrototypeOf2.default)(NewRecruiter)).call(this, props));
_this.state = {
administrator: false,
team_id: props.team_id,
first_name: '',
last_name: '',
email: ''
};
(0, _auto_bind2.default)(_this);
return _this;
}
(0, _createClass3.default)(NewRecruiter, [{
key: 'toggle_administrator',
value: function toggle_administrator() {
this.setState((0, _utilities.property_toggler)('administrator'));
}
}, {
key: 'toggle_team',
value: function toggle_team() {
if (this.state.team_id) {
this.setState({ team_id: null });
} else {
this.setState({ team_id: this.props.team_id });
}
}
}, {
key: 'invite_recruiter',
value: function invite_recruiter() {
this.props.invite_recruiter(this.state);
}
}, {
key: 'render_team_picker',
value: function render_team_picker() {
var _this2 = this;
var _props = this.props,
administrator = _props.administrator,
team = _props.team,
teams = _props.teams;
if (this.state.administrator) {
return null;
} else if (administrator) {
return _react2.default.createElement(_exclusive_field2.default, {
values: (0, _utilities.array_from_hash)(teams),
show_label: false,
placeholder: "Pas d'équipe",
selected: this.state.team_id,
on_select_value: function on_select_value(team_id) {
return _this2.setState({ team_id: team_id });
},
on_clear: function on_clear() {
return _this2.setState({ team_id: null });
},
create_value: _recruiters2.action_create_team
});
} else if (team && team.name) {
return _react2.default.createElement(
_check_box2.default,
{ toggle: this.toggle_team, selected: this.state.team_id },
'Int\xE9grer \xE0 mon \xE9quipe (' + team.name + ')'
);
} else {
return null;
}
}
}, {
key: 'render',
value: function render() {
var _this3 = this;
var _state = this.state,
first_name = _state.first_name,
last_name = _state.last_name,
email = _state.email;
var administrator = this.props.administrator;
return _react2.default.createElement(
_new_recruiterReact.Container,
null,
_react2.default.createElement(
_new_recruiterReact.Row,
null,
_react2.default.createElement(_new_recruiterReact.Input, {
type: 'text',
placeholder: 'Pr\xE9nom',
value: this.state.first_name,
onChange: function onChange(_ref) {
var first_name = _ref.target.value;
return _this3.setState({ first_name: first_name });
}
}),
_react2.default.createElement(_new_recruiterReact.Input, {
type: 'text',
placeholder: 'Nom',
value: this.state.last_name,
onChange: function onChange(_ref2) {
var last_name = _ref2.target.value;
return _this3.setState({ last_name: last_name });
}
})
),
_react2.default.createElement(
_new_recruiterReact.Row,
null,
_react2.default.createElement(_new_recruiterReact.Input, {
type: 'email',
placeholder: 'Adresse mail',
value: this.state.email,
onChange: function onChange(_ref3) {
var email = _ref3.target.value;
return _this3.setState({ email: email });
}
})
),
administrator ? _react2.default.createElement(
_check_box2.default,
{ toggle: this.toggle_administrator, selected: this.state.administrator },
'Administrateur'
) : null,
this.render_team_picker(),
_react2.default.createElement(
_new_recruiterReact.ButtonContainer,
null,
_react2.default.createElement(
_button2.default,
{ onClick: this.invite_recruiter },
'Inviter'
)
)
);
}
}]);
return NewRecruiter;
}(_react.Component);
exports.default = (0, _reactRedux.connect)(function (state) {
return (0, _extends3.default)({}, (0, _recruiters.get_recruiters)(state)[state.profile.id] || {}, {
teams: (0, _recruiters.get_teams)(state)
});
})(NewRecruiter);