UNPKG

instantjob-recruiter-client

Version:

a set of tools for creating an instantjob recruiter react client

170 lines (127 loc) 6.18 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _taggedTemplateLiteral2 = require('babel-runtime/helpers/taggedTemplateLiteral'); var _taggedTemplateLiteral3 = _interopRequireDefault(_taggedTemplateLiteral2); var _defineProperty2 = require('babel-runtime/helpers/defineProperty'); var _defineProperty3 = _interopRequireDefault(_defineProperty2); 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 _templateObject = (0, _taggedTemplateLiteral3.default)(['\n background-color: ', ';\n border-radius: 2px;\n padding: 14px 24px;\n color: white;\n margin: 0 20px;\n box-shadow: 0 0 3px ', ';\n display: flex;\n align-items: center;\n'], ['\n background-color: ', ';\n border-radius: 2px;\n padding: 14px 24px;\n color: white;\n margin: 0 20px;\n box-shadow: 0 0 3px ', ';\n display: flex;\n align-items: center;\n']), _templateObject2 = (0, _taggedTemplateLiteral3.default)(['\n margin: -14px 0 -14px 14px;\n'], ['\n margin: -14px 0 -14px 14px;\n']); var _react = require('react'); var _react2 = _interopRequireDefault(_react); var _styledComponents = require('styled-components'); var _styledComponents2 = _interopRequireDefault(_styledComponents); var _button = require('components/utils/button'); var _button2 = _interopRequireDefault(_button); var _stylesReact = require('./styles.react.scss'); var _auto_bind = require('common/auto_bind'); var _auto_bind2 = _interopRequireDefault(_auto_bind); var _utilities = require('common/utilities'); var _moment = require('common/moment'); var _moment2 = _interopRequireDefault(_moment); var _styles = require('common/styles'); var _missions = require('common/missions'); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var MissionStatus = function (_Component) { (0, _inherits3.default)(MissionStatus, _Component); function MissionStatus(props) { (0, _classCallCheck3.default)(this, MissionStatus); var _this = (0, _possibleConstructorReturn3.default)(this, (MissionStatus.__proto__ || (0, _getPrototypeOf2.default)(MissionStatus)).call(this, props)); (0, _auto_bind2.default)(_this); return _this; } (0, _createClass3.default)(MissionStatus, [{ key: 'render_statistics', value: function render_statistics() { var _props = this.props, accepted_count = _props.accepted_count, assigned_count = _props.assigned_count, empty_count = _props.empty_count, status = _props.status; var statistics = []; if (assigned_count) { statistics.push((0, _utilities.human_plural)(assigned_count, "%% poste validé", "%% postes validés")); } if (status != 'assigned') { if (accepted_count) { statistics.push((0, _utilities.human_plural)(accepted_count, "%% candidat intéressé", "%% candidats intéressés")); } if (status == "pending_selection") { statistics.push((0, _utilities.human_plural)(empty_count, "%% poste à reproposer", "%% postes à reproposer")); } else { statistics.push((0, _utilities.human_plural)(empty_count, "%% poste vacant", "%% postes vacants")); } } return statistics.join(', '); } }, { key: 'render', value: function render() { var _props2 = this.props, status = _props2.status, label = _props2.label, simple = _props2.simple, className = _props2.className, will_send_notification_at = _props2.will_send_notification_at, cancel_update_notification = _props2.cancel_update_notification; var _get_mission_status_e = (0, _missions.get_mission_status_elements)(status), icon = _get_mission_status_e.icon, name = _get_mission_status_e.name, color = _get_mission_status_e.color; var notification_sent = will_send_notification_at && (0, _moment2.default)().isAfter(will_send_notification_at); return _react2.default.createElement( _stylesReact.Container, { className: className }, _react2.default.createElement( _stylesReact.Badge, { variant: (0, _defineProperty3.default)({}, status, true) }, icon ), simple ? null : _react2.default.createElement( _stylesReact.Description, null, _react2.default.createElement( _stylesReact.Title, null, label, ' ', name ), _react2.default.createElement( _stylesReact.Statistics, null, this.render_statistics() ) ), simple || !will_send_notification_at ? null : _react2.default.createElement( Updating, null, 'Une notification de mise \xE0 jour sera envoy\xE9e dans 1 minute', _react2.default.createElement( Button, { dark_background: true, discreet: true, done: notification_sent, onClick: cancel_update_notification }, notification_sent ? "Envoyée" : "Annuler" ) ) ); } }]); return MissionStatus; }(_react.Component); exports.default = MissionStatus; MissionStatus.defaultProps = { label: 'Prestation' }; var Updating = _styledComponents2.default.div(_templateObject, (0, _styles.color)('black', 'intense'), (0, _styles.color)('black', 'intense')); var Button = (0, _styledComponents2.default)(_button2.default)(_templateObject2);