UNPKG

instantjob-recruiter-client

Version:

a set of tools for creating an instantjob recruiter react client

182 lines (142 loc) 5.81 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _toConsumableArray2 = require('babel-runtime/helpers/toConsumableArray'); var _toConsumableArray3 = _interopRequireDefault(_toConsumableArray2); 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 _stylesReact = require('./styles.react.scss'); var _check_box = require('components/utils/check_box'); var _check_box2 = _interopRequireDefault(_check_box); var _button = require('components/utils/button'); var _button2 = _interopRequireDefault(_button); var _auto_bind = require('common/auto_bind'); var _auto_bind2 = _interopRequireDefault(_auto_bind); var _utilities = require('common/utilities'); var _missions = require('common/missions'); var _missions2 = require('selectors/missions'); var _fields = require('selectors/fields'); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var CustomizeDealFields = function (_Component) { (0, _inherits3.default)(CustomizeDealFields, _Component); function CustomizeDealFields(props) { (0, _classCallCheck3.default)(this, CustomizeDealFields); var _this = (0, _possibleConstructorReturn3.default)(this, (CustomizeDealFields.__proto__ || (0, _getPrototypeOf2.default)(CustomizeDealFields)).call(this, props)); var _props$deal = props.deal, has_custom_workplace = _props$deal.has_custom_workplace, has_custom_events = _props$deal.has_custom_events, custom_field_ids = _props$deal.custom_field_ids; _this.state = { has_custom_events: has_custom_events, has_custom_workplace: has_custom_workplace, custom_field_ids: custom_field_ids }; (0, _auto_bind2.default)(_this); return _this; } (0, _createClass3.default)(CustomizeDealFields, [{ key: 'toggle_custom_workplace', value: function toggle_custom_workplace() { this.setState((0, _utilities.property_toggler)('has_custom_workplace')); } }, { key: 'toggle_custom_events', value: function toggle_custom_events() { this.setState((0, _utilities.property_toggler)('has_custom_events')); } }, { key: 'toggle_custom_field', value: function toggle_custom_field(field_id) { this.setState((0, _utilities.scope)('custom_field_ids')((0, _utilities.property_toggler)(field_id))); } }, { key: 'update', value: function update() { this.props.update((0, _extends3.default)({}, this.props.deal, this.state)); } }, { key: 'render_field', value: function render_field(_ref) { var _this2 = this; var id = _ref.id, name = _ref.name, category = _ref.category, for_entity = _ref.for_entity; var locked = void 0, selected = this.state.custom_field_ids[id]; if (category == 'computed' || category == 'template') { locked = true; switch (for_entity) { case 'Deal': selected = false; break; case 'Mission': selected = true; break; } } return _react2.default.createElement( _check_box2.default, { key: id, toggle: function toggle() { return _this2.toggle_custom_field(id); }, selected: selected, locked: locked }, name ); } }, { key: 'render', value: function render() { var fields = this.props.fields; var _state = this.state, has_custom_workplace = _state.has_custom_workplace, has_custom_events = _state.has_custom_events, custom_field_ids = _state.custom_field_ids; return _react2.default.createElement( _stylesReact.Container, null, _react2.default.createElement( _check_box2.default, { toggle: this.toggle_custom_workplace, selected: has_custom_workplace }, 'Lieu de travail' ), _react2.default.createElement( _check_box2.default, { toggle: this.toggle_custom_events, selected: has_custom_events }, 'Dates et horaires' ), fields.map(this.render_field), _react2.default.createElement( _stylesReact.ButtonContainer, null, _react2.default.createElement( _button2.default, { disabled: !(0, _missions.deal_has_custom_fields)(this.state), onClick: this.update }, 'Valider' ) ) ); } }]); return CustomizeDealFields; }(_react.Component); exports.default = (0, _reactRedux.connect)(function (state, _ref2) { var deal_id = _ref2.deal_id; return { deal: (0, _missions2.get_deals)(state)[deal_id] || { custom_field_ids: {} }, fields: [].concat((0, _toConsumableArray3.default)((0, _fields.get_missions_fields)(state)), (0, _toConsumableArray3.default)((0, _fields.get_deals_fields)(state))) }; })(CustomizeDealFields);