@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
JavaScript
'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 });
}
});