UNPKG

instantjob-recruiter-client

Version:

a set of tools for creating an instantjob recruiter react client

122 lines (95 loc) 4.46 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); 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 _moment = require('../common/moment'); var _moment2 = _interopRequireDefault(_moment); var _constants = require('../common/constants'); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var work_start = 6; var work_end = 24; var event_width = 140; var DayDetailStatic = function (_Component) { (0, _inherits3.default)(DayDetailStatic, _Component); function DayDetailStatic() { (0, _classCallCheck3.default)(this, DayDetailStatic); return (0, _possibleConstructorReturn3.default)(this, (DayDetailStatic.__proto__ || (0, _getPrototypeOf2.default)(DayDetailStatic)).apply(this, arguments)); } (0, _createClass3.default)(DayDetailStatic, [{ key: 'render', value: function render() { var _this2 = this; var working_hours = []; for (var i = work_start; i < work_end; i = i + 1) { working_hours.push(i); } return _react2.default.createElement( 'div', { style: { borderLeftWidth: 1, borderLeftColor: (0, _constants.color)('black', 'bright'), borderLeftStyle: 'solid', display: 'flex', flexDirection: 'column', alignItems: 'stretch', width: 200, position: 'relative', overflow: 'hidden' } }, working_hours.map(function (hour) { return _react2.default.createElement(Hour, { hour: hour, key: hour }); }), this.props.events.map(function (event) { return _react2.default.createElement(Event, { event: event, key: event.id, currentDay: _this2.props.current_day }); }) ); } }]); return DayDetailStatic; }(_react.Component); var Hour = function Hour(props) { return _react2.default.createElement( 'div', { style: { display: 'flex', flexDirection: 'row', alignItems: 'center', justifyContent: 'space between' } }, _react2.default.createElement( 'div', { style: { width: 200 - event_width, display: 'flex', flexDirection: 'column', alignItems: 'flex-end', justifyContent: 'center', height: 30 } }, _react2.default.createElement( 'p', { style: { color: (0, _constants.color)('black', 'bright') } }, props.hour, ':00' ) ), _react2.default.createElement('div', { style: { height: 1, backgroundColor: (0, _constants.color)('black', 'bright'), marginLeft: 10, width: 180 } }) ); }; var Event = function Event(props) { var event = props.event; var start = (0, _moment2.default)(event.start); var start_hour = work_start; if (props.currentDay.isSame(start, 'day')) { start_hour = start.hour() + start.minute() / 60; } var end = (0, _moment2.default)(event.end); var end_hour = work_end; if (props.currentDay.isSame(end, 'day')) { end_hour = end.hour() + end.minute() / 60; } return _react2.default.createElement('div', { style: { top: (start_hour - work_start) * 30, left: 200 - event_width, width: event_width, backgroundColor: (0, _constants.color)('important'), bottom: (work_end - end_hour) * 30, position: 'absolute' } }); }; var DayDetail = (0, _reactRedux.connect)(function (state) { var current_day = (0, _moment2.default)({ y: state.calendar.current_year, M: state.calendar.current_month, d: state.calendar.current_date }); return { events: state.calendar.current_events.map(function (event_id) { return state.calendar.events[event_id]; }).filter(function (event) { return current_day.isBetween(event.start, event.end, 'day', '[]'); }), current_day: current_day }; })(DayDetailStatic); exports.default = DayDetail;