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

94 lines (82 loc) 3.38 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _react = require('react'); var _react2 = _interopRequireDefault(_react); var _reactIntl = require('react-intl'); var _IconedIntegerSelect = require('./IconedIntegerSelect'); var _IconedIntegerSelect2 = _interopRequireDefault(_IconedIntegerSelect); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } exports.default = _react2.default.createClass({ displayName: 'RoomOccupancy', mixins: [_reactIntl.IntlMixin], propTypes: { occupancyConstraints: _react2.default.PropTypes.shape({ maxOccupancy: _react2.default.PropTypes.number.isRequired, maxCribs: _react2.default.PropTypes.number.isRequired }).isRequired, occupancyRoomCounts: _react2.default.PropTypes.shape({ adults: _react2.default.PropTypes.number.isRequired, children: _react2.default.PropTypes.number.isRequired, infants: _react2.default.PropTypes.number.isRequired }), onChange: _react2.default.PropTypes.func.isRequired }, render: function render() { return _react2.default.createElement( 'span', { className: 'basket-room-occupancy occup' }, _react2.default.createElement(_IconedIntegerSelect2.default, { ref: 'adults', icon: this.adultsIcon(), minValue: 1, maxValue: this.props.occupancyConstraints.maxOccupancy, value: this.props.occupancyRoomCounts.adults, onChange: this.handleAdultsChange }), ' ', _react2.default.createElement(_IconedIntegerSelect2.default, { ref: 'children', icon: this.childrenIcon(), minValue: 0, maxValue: this.props.occupancyConstraints.maxOccupancy - 1, value: this.props.occupancyRoomCounts.children, onChange: this.handleChildrenChange }), ' ', _react2.default.createElement(_IconedIntegerSelect2.default, { ref: 'infants', icon: this.infantsIcon(), minValue: 0, maxValue: this.props.occupancyConstraints.maxCribs, value: this.props.occupancyRoomCounts.infants, onChange: this.handleInfantsChange }) ); }, adultsIcon: function adultsIcon() { return { uri: '/i/adult.gif', title: this.getIntlMessage('react-basket.occupancy.adults') }; }, childrenIcon: function childrenIcon() { return { uri: '/i/child.gif', title: this.getIntlMessage('react-basket.occupancy.children') }; }, infantsIcon: function infantsIcon() { return { uri: '/i/crib.gif', title: this.getIntlMessage('react-basket.occupancy.infants') }; }, handleAdultsChange: function handleAdultsChange(newValue) { this.props.onChange({ adults: newValue }); }, handleChildrenChange: function handleChildrenChange(newValue) { this.props.onChange({ children: newValue }); }, handleInfantsChange: function handleInfantsChange(newValue) { this.props.onChange({ infants: newValue }); } });