instantjob-recruiter-client
Version:
a set of tools for creating an instantjob recruiter react client
170 lines (127 loc) • 6.18 kB
JavaScript
'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);