UNPKG

@xiag-stc/react-basket

Version:

Order basket view: period of stay blocks containing the hotel blocks containing the room blocks; guest data forms with variations for Airline- and Airport-TO-s

90 lines (78 loc) 3.4 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.DATE_FORMAT_GUI = exports.DATE_FORMAT_RAW = undefined; exports.dayText = dayText; var _react = require('react'); var _react2 = _interopRequireDefault(_react); var _reactIntl = require('react-intl'); var _moment = require('moment'); var _moment2 = _interopRequireDefault(_moment); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var DATE_FORMAT_RAW = exports.DATE_FORMAT_RAW = 'YYYY-MM-DD'; var DATE_FORMAT_GUI = exports.DATE_FORMAT_GUI = 'DD.MM.YYYY'; function dayText(d) { return (0, _moment2.default)(d, DATE_FORMAT_RAW).format(DATE_FORMAT_GUI); } exports.default = _react2.default.createClass({ displayName: 'DurationOfStay', mixins: [_reactIntl.IntlMixin], propTypes: { periodOfStay: _react2.default.PropTypes.shape({ checkInDate: _react2.default.PropTypes.string.isRequired, checkOutDate: _react2.default.PropTypes.string.isRequired }).isRequired }, render: function render() { return _react2.default.createElement( 'div', { className: 'panel panel__search-query' }, _react2.default.createElement( 'div', { className: 'panel-body' }, _react2.default.createElement( 'h4', null, _react2.default.createElement( 'b', { className: 'title' }, _react2.default.createElement(_reactIntl.FormattedMessage, { message: this.getIntlMessage('react-basket.durationOfStay') }), ':' ), ' ', _react2.default.createElement( 'span', { className: 'period-of-stay' }, this.daysText(), ' (', _react2.default.createElement(_reactIntl.FormattedMessage, { message: this.getIntlMessage('react-basket.nightsCount'), count: this.nightsCount() }), ')' ) ), _react2.default.createElement( 'b', { className: 'legend-key' }, _react2.default.createElement(_reactIntl.FormattedMessage, { message: this.getIntlMessage('react-basket.asteriskTotal') }) ), '\u2014', _react2.default.createElement( 'span', { className: 'legend-meaning' }, _react2.default.createElement(_reactIntl.FormattedMessage, { message: this.getIntlMessage('react-basket.totalColumnMeaning') }) ) ) ); }, daysText: function daysText() { return [dayText(this.props.periodOfStay.checkInDate), '—', dayText(this.props.periodOfStay.checkOutDate)].join(' '); }, nightsCount: function nightsCount() { return (0, _moment2.default)(this.props.periodOfStay.checkOutDate, DATE_FORMAT_RAW).diff((0, _moment2.default)(this.props.periodOfStay.checkInDate, DATE_FORMAT_RAW), 'days'); } });