instantjob-recruiter-client
Version:
a set of tools for creating an instantjob recruiter react client
191 lines (143 loc) • 6.79 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)(['solid 1px ', ''], ['solid 1px ', '']),
_templateObject2 = (0, _taggedTemplateLiteral3.default)(['\n flex: 1;\n display: flex;\n align-items: stretch;\n'], ['\n flex: 1;\n display: flex;\n align-items: stretch;\n']),
_templateObject3 = (0, _taggedTemplateLiteral3.default)(['\n flex: 1;\n display: flex;\n align-items: stretch;\n flex-direction: column;\n'], ['\n flex: 1;\n display: flex;\n align-items: stretch;\n flex-direction: column;\n']),
_templateObject4 = (0, _taggedTemplateLiteral3.default)(['\n display: flex;\n align-items: center;\n justify-content: center;\n flex-direction: column;\n border-bottom: ', ';\n'], ['\n display: flex;\n align-items: center;\n justify-content: center;\n flex-direction: column;\n border-bottom: ', ';\n']),
_templateObject5 = (0, _taggedTemplateLiteral3.default)([''], ['']),
_templateObject6 = (0, _taggedTemplateLiteral3.default)(['\n font-size: 12px;\n'], ['\n font-size: 12px;\n']),
_templateObject7 = (0, _taggedTemplateLiteral3.default)(['\n border-left: ', ';\n background-color: ', ';\n flex: 1;\n overflow: scroll;\n\n &:last-of-type {\n border-right: ', ';\n }\n'], ['\n border-left: ', ';\n background-color: ', ';\n flex: 1;\n overflow: scroll;\n\n &:last-of-type {\n border-right: ', ';\n }\n']);
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _styledComponents = require('styled-components');
var _styledComponents2 = _interopRequireDefault(_styledComponents);
var _periods = require('./periods');
var _periods2 = _interopRequireDefault(_periods);
var _get_week_periods = require('./get_week_periods');
var _get_week_periods2 = _interopRequireDefault(_get_week_periods);
var _auto_bind = require('common/auto_bind');
var _auto_bind2 = _interopRequireDefault(_auto_bind);
var _moment = require('common/moment');
var _moment2 = _interopRequireDefault(_moment);
var _event_system = require('common/event_system');
var _event_system2 = _interopRequireDefault(_event_system);
var _utilities = require('common/utilities');
var _styles = require('common/styles');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var Week = function (_Component) {
(0, _inherits3.default)(Week, _Component);
function Week(props) {
(0, _classCallCheck3.default)(this, Week);
var _this = (0, _possibleConstructorReturn3.default)(this, (Week.__proto__ || (0, _getPrototypeOf2.default)(Week)).call(this, props));
_this.state = {
week: (0, _moment2.default)()
};
(0, _auto_bind2.default)(_this);
return _this;
}
(0, _createClass3.default)(Week, [{
key: 'componentDidMount',
value: function componentDidMount() {
var _this2 = this;
this.stop_retrieving_calendar_week = _event_system2.default.retrieve('calendar-week', function (week) {
_this2.setState({ week: week });
});
}
}, {
key: 'componentWillUnmount',
value: function componentWillUnmount() {
this.stop_retrieving_calendar_week();
}
}, {
key: 'get_days',
value: function get_days() {
var start = (0, _moment2.default)(this.state.week).startOf('week');
return (0, _get_week_periods2.default)(start)(this.props).map(function (periods, index) {
return {
periods: periods,
date: (0, _moment2.default)(start).add(index, 'day')
};
});
}
}, {
key: 'render_day',
value: function render_day(day, index) {
return _react2.default.createElement(Day, (0, _extends3.default)({ key: index }, day));
}
}, {
key: 'render',
value: function render() {
return _react2.default.createElement(
Container,
null,
this.get_days().map(this.render_day)
);
}
}]);
return Week;
}(_react.Component);
exports.default = Week;
var Day = function (_Component2) {
(0, _inherits3.default)(Day, _Component2);
function Day(props) {
(0, _classCallCheck3.default)(this, Day);
var _this3 = (0, _possibleConstructorReturn3.default)(this, (Day.__proto__ || (0, _getPrototypeOf2.default)(Day)).call(this, props));
(0, _auto_bind2.default)(_this3);
return _this3;
}
(0, _createClass3.default)(Day, [{
key: 'render',
value: function render() {
var _props = this.props,
date = _props.date,
periods = _props.periods;
return _react2.default.createElement(
DayContainer,
null,
_react2.default.createElement(
Header,
null,
_react2.default.createElement(
WeekDay,
null,
(0, _utilities.capitalize_first_letter)(date.format("dddd"))
),
_react2.default.createElement(
FullDate,
null,
date.format("D/M")
)
),
_react2.default.createElement(
Content,
null,
_react2.default.createElement(_periods2.default, { periods: periods })
)
);
}
}]);
return Day;
}(_react.Component);
var border = (0, _styledComponents.css)(_templateObject, (0, _styles.color)('black', 'pale'));
var Container = _styledComponents2.default.div(_templateObject2);
var DayContainer = _styledComponents2.default.div(_templateObject3);
var Header = _styledComponents2.default.div(_templateObject4, border);
var WeekDay = _styledComponents2.default.div(_templateObject5);
var FullDate = _styledComponents2.default.div(_templateObject6);
var Content = _styledComponents2.default.div(_templateObject7, border, (0, _styles.color)('black', 'translucent'), border);