instantjob-recruiter-client
Version:
a set of tools for creating an instantjob recruiter react client
144 lines (100 loc) • 4.57 kB
JavaScript
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
var _taggedTemplateLiteral2 = require('babel-runtime/helpers/taggedTemplateLiteral');
var _taggedTemplateLiteral3 = _interopRequireDefault(_taggedTemplateLiteral2);
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 _templateObject = (0, _taggedTemplateLiteral3.default)(['\n display: flex;\n flex-direction: column;\n align-items: flex-end;\n margin-left: -120px;\n padding-right: 20px;\n margin-top: 20px;\n'], ['\n display: flex;\n flex-direction: column;\n align-items: flex-end;\n margin-left: -120px;\n padding-right: 20px;\n margin-top: 20px;\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 _time_pickers = require('components/input_calendar/time_pickers');
var _time_pickers2 = _interopRequireDefault(_time_pickers);
var _auto_bind = require('common/auto_bind');
var _auto_bind2 = _interopRequireDefault(_auto_bind);
var _moment = require('common/moment');
var _moment2 = _interopRequireDefault(_moment);
var _store = require('common/store');
var _store2 = _interopRequireDefault(_store);
var _utilities = require('common/utilities');
var _styles = require('common/styles');
var _display = require('actions/display');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var SlotPicker = function (_Component) {
(0, _inherits3.default)(SlotPicker, _Component);
function SlotPicker(props) {
(0, _classCallCheck3.default)(this, SlotPicker);
var _this = (0, _possibleConstructorReturn3.default)(this, (SlotPicker.__proto__ || (0, _getPrototypeOf2.default)(SlotPicker)).call(this, props));
_this.start = (0, _moment2.default)(props.slot.start).startOf('day');
_this.state = {
chunks: (0, _time_pickers.get_days_chunks)(props.slot.events || [props.slot])[(0, _time_pickers.day_id)(_this.start)] || {}
};
(0, _auto_bind2.default)(_this);
return _this;
}
(0, _createClass3.default)(SlotPicker, [{
key: 'flip',
value: function flip(_, new_chunks, paint) {
this.setState(function (_ref) {
var chunks = _ref.chunks;
return {
chunks: (0, _extends3.default)({}, chunks, (0, _utilities.create_hash)(new_chunks, function () {
return paint;
}))
};
});
}
}, {
key: 'submit',
value: function submit() {
var _this2 = this;
var events = [];
(0, _time_pickers.get_periods)(this.state.chunks).forEach(function (_ref2) {
var start = _ref2.start,
end = _ref2.end;
events.push((0, _extends3.default)({}, (0, _time_pickers.get_start_end)(_this2.start, start, end), {
full_days: false
}));
});
this.props.update_events(events);
_store2.default.dispatch((0, _display.dismiss_popover)());
}
}, {
key: 'render',
value: function render() {
return _react2.default.createElement(
Container,
null,
_react2.default.createElement(_time_pickers2.default, {
day_label: false,
days: [{ date: this.start, chunks: this.state.chunks }],
flip: this.flip,
drag_color: (0, _styles.color)('primary')
}),
_react2.default.createElement(
_button2.default,
{ onClick: this.submit },
'Enregistrer'
)
);
}
}]);
return SlotPicker;
}(_react.Component);
exports.default = SlotPicker;
var Container = _styledComponents2.default.div(_templateObject);