UNPKG

instantjob-recruiter-client

Version:

a set of tools for creating an instantjob recruiter react client

211 lines (172 loc) 6.56 kB
'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);