instantjob-recruiter-client
Version:
a set of tools for creating an instantjob recruiter react client
191 lines (145 loc) • 5.86 kB
JavaScript
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
var _extends2 = require('babel-runtime/helpers/extends');
var _extends3 = _interopRequireDefault(_extends2);
var _objectWithoutProperties2 = require('babel-runtime/helpers/objectWithoutProperties');
var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
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 _bind = require('classnames/bind');
var _bind2 = _interopRequireDefault(_bind);
var _button = require('components/utils/button');
var _button2 = _interopRequireDefault(_button);
var _user_card = require('components/user_card');
var _user_card2 = _interopRequireDefault(_user_card);
var _store = require('../common/store');
var _store2 = _interopRequireDefault(_store);
var _users = require('../common/users');
var _demands = require('../selectors/demands');
var _display = require('../actions/display');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var cx = _bind2.default.bind(require('../styles/demands.scss'));
var DemandsStatic = function (_Component) {
(0, _inherits3.default)(DemandsStatic, _Component);
function DemandsStatic(props) {
(0, _classCallCheck3.default)(this, DemandsStatic);
var _this = (0, _possibleConstructorReturn3.default)(this, (DemandsStatic.__proto__ || (0, _getPrototypeOf2.default)(DemandsStatic)).call(this, props));
_this.state = {
mode: 'pending'
};
_this.render_demand = _this.render_demand.bind(_this);
_this.render_mode = _this.render_mode.bind(_this);
_this.set_mode = _this.set_mode.bind(_this);
return _this;
}
(0, _createClass3.default)(DemandsStatic, [{
key: 'set_mode',
value: function set_mode(mode) {
var _this2 = this;
return function () {
return _this2.setState({ mode: mode });
};
}
}, {
key: 'render_demand',
value: function render_demand(_ref) {
var id = _ref.id,
demand = (0, _objectWithoutProperties3.default)(_ref, ['id']);
return _react2.default.createElement(Demand, (0, _extends3.default)({ key: id }, demand, { mode: this.state.mode }));
}
}, {
key: 'render_mode',
value: function render_mode(_ref2) {
var label = _ref2.label,
mode = _ref2.mode;
return _react2.default.createElement(
'div',
{
key: mode,
onClick: this.set_mode(mode),
className: cx('demands__mode', { 'demands__mode_selected': mode == this.state.mode }) },
label
);
}
}, {
key: 'render',
value: function render() {
var demands = this.props[this.state.mode];
return _react2.default.createElement(
'div',
{ className: cx('demands') },
_react2.default.createElement(
'div',
{ className: cx('demands__modes') },
[{ label: "En attente", mode: "pending" }, { label: "Rejetées", mode: "rejected" }].map(this.render_mode)
),
_react2.default.createElement(
'div',
{ className: cx('demands__table') },
demands.map(this.render_demand)
)
);
}
}]);
return DemandsStatic;
}(_react.Component);
var Demand = function (_Component2) {
(0, _inherits3.default)(Demand, _Component2);
function Demand(props) {
(0, _classCallCheck3.default)(this, Demand);
var _this3 = (0, _possibleConstructorReturn3.default)(this, (Demand.__proto__ || (0, _getPrototypeOf2.default)(Demand)).call(this, props));
_this3.accept = _this3.accept.bind(_this3);
_this3.reject = _this3.reject.bind(_this3);
return _this3;
}
(0, _createClass3.default)(Demand, [{
key: 'accept',
value: function accept() {
this.props.accept();
_store2.default.dispatch((0, _display.alert_success)('Nous avons pr\xE9venu ' + (0, _users.user_full_name)(this.props.user) + ' que vous acceptez sa candidature.'));
}
}, {
key: 'reject',
value: function reject() {
this.props.reject();
_store2.default.dispatch((0, _display.alert_success)('Nous avons pr\xE9venu ' + (0, _users.user_full_name)(this.props.user) + ' que vous rejetez sa candidature.'));
}
}, {
key: 'render',
value: function render() {
return _react2.default.createElement(
'div',
{ className: cx('demands__demand') },
_react2.default.createElement(_user_card2.default, this.props.user),
this.props.mode == "pending" ? _react2.default.createElement(
_button2.default,
{ onClick: this.reject, secondary: true },
'Rejeter'
) : null,
_react2.default.createElement(
_button2.default,
{ onClick: this.accept, secondary: this.props.mode == "rejected" },
'Accepter'
)
);
}
}]);
return Demand;
}(_react.Component);
var Demands = (0, _reactRedux.connect)(function (state) {
return (0, _extends3.default)({}, (0, _demands.get_demands)(state));
})(DemandsStatic);
exports.default = Demands;