UNPKG

@kiwicom/smart-faq

Version:

289 lines (229 loc) 14.3 kB
"use strict"; require("core-js/modules/es.symbol"); require("core-js/modules/es.symbol.description"); require("core-js/modules/es.symbol.iterator"); require("core-js/modules/es.array.concat"); require("core-js/modules/es.array.iterator"); require("core-js/modules/es.function.name"); require("core-js/modules/es.object.get-own-property-descriptor"); require("core-js/modules/es.object.get-prototype-of"); require("core-js/modules/es.object.set-prototype-of"); require("core-js/modules/es.object.to-string"); require("core-js/modules/es.string.iterator"); require("core-js/modules/web.dom-collections.iterator"); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var React = _interopRequireWildcard(require("react")); var _reactRelay = require("react-relay"); var _styledComponents = require("styled-components"); var _reactRouterDom = require("react-router-dom"); var _City = _interopRequireDefault(require("@kiwicom/orbit-components/lib/icons/City")); var _InformationCircle = _interopRequireDefault(require("@kiwicom/orbit-components/lib/icons/InformationCircle")); var _Airplane = _interopRequireDefault(require("@kiwicom/orbit-components/lib/icons/Airplane")); var _Ticket = _interopRequireDefault(require("@kiwicom/orbit-components/lib/icons/Ticket")); var _CarrierLogo = _interopRequireDefault(require("@kiwicom/orbit-components/lib/CarrierLogo")); var _Translate = _interopRequireDefault(require("@kiwicom/nitro/lib/components/Translate")); var _TextLink = _interopRequireDefault(require("@kiwicom/orbit-components/lib/TextLink")); var _List = _interopRequireDefault(require("@kiwicom/orbit-components/lib/List")); var _ListItem = _interopRequireDefault(require("@kiwicom/orbit-components/lib/List/ListItem")); var _PageVariant = _interopRequireDefault(require("../../context/PageVariant")); var _bookingLegTypes = _interopRequireDefault(require("../../common/booking/bookingLegTypes")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj.default = obj; return newObj; } } function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } var LegCitiesInfo = /*#__PURE__*/ function (_React$Component) { _inherits(LegCitiesInfo, _React$Component); function LegCitiesInfo() { var _getPrototypeOf2; var _this; _classCallCheck(this, LegCitiesInfo); for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(LegCitiesInfo)).call.apply(_getPrototypeOf2, [this].concat(args))); _defineProperty(_assertThisInitialized(_this), "onClickShowMore", function (e, urlPrefix) { e.preventDefault(); _this.props.history.push("".concat(urlPrefix, "/search/article/127")); }); return _this; } _createClass(LegCitiesInfo, [{ key: "render", value: function render() { var _leg$flightNumber, _leg$pnr, _ref, _leg$airline, _ref2, _leg$airline2, _ref3, _leg$operatingAirline, _ref4, _leg$operatingAirline2, _ref5, _leg$vehicle, _ref6, _leg$vehicle2, _ref7, _leg$departure, _leg$departure$airpor, _ref8, _leg$arrival, _leg$arrival$airport, _this2 = this; var _this$props = this.props, leg = _this$props.leg, theme = _this$props.theme; var flightNumber = (_leg$flightNumber = leg.flightNumber) !== null && _leg$flightNumber !== void 0 ? _leg$flightNumber : ''; var transportationMode = leg.type; var reservationNumber = (_leg$pnr = leg.pnr) !== null && _leg$pnr !== void 0 ? _leg$pnr : ''; var carrier = { code: (_ref = leg === null || leg === void 0 ? void 0 : (_leg$airline = leg.airline) === null || _leg$airline === void 0 ? void 0 : _leg$airline.code) !== null && _ref !== void 0 ? _ref : '', name: (_ref2 = leg === null || leg === void 0 ? void 0 : (_leg$airline2 = leg.airline) === null || _leg$airline2 === void 0 ? void 0 : _leg$airline2.name) !== null && _ref2 !== void 0 ? _ref2 : '' }; var carrierName = transportationMode === _bookingLegTypes.default.AIRCRAFT ? React.createElement(_Translate.default, { t: "smartfaq.single_booking_page.accordion_cities_info.airline_title_name", values: { carrierName: carrier.name } }) : React.createElement(_Translate.default, { t: "smartfaq.single_booking_page.accordion_cities_info.carrier_title_name", values: { carrierName: carrier.name } }); var operatingAirline = { code: (_ref3 = leg === null || leg === void 0 ? void 0 : (_leg$operatingAirline = leg.operatingAirline) === null || _leg$operatingAirline === void 0 ? void 0 : _leg$operatingAirline.iata) !== null && _ref3 !== void 0 ? _ref3 : '', name: (_ref4 = leg === null || leg === void 0 ? void 0 : (_leg$operatingAirline2 = leg.operatingAirline) === null || _leg$operatingAirline2 === void 0 ? void 0 : _leg$operatingAirline2.name) !== null && _ref4 !== void 0 ? _ref4 : '' }; var vehicle = { manufacturer: (_ref5 = (_leg$vehicle = leg.vehicle) === null || _leg$vehicle === void 0 ? void 0 : _leg$vehicle.manufacturer) !== null && _ref5 !== void 0 ? _ref5 : '', model: (_ref6 = (_leg$vehicle2 = leg.vehicle) === null || _leg$vehicle2 === void 0 ? void 0 : _leg$vehicle2.model) !== null && _ref6 !== void 0 ? _ref6 : '' }; var departureStationName = (_ref7 = leg === null || leg === void 0 ? void 0 : (_leg$departure = leg.departure) === null || _leg$departure === void 0 ? void 0 : (_leg$departure$airpor = _leg$departure.airport) === null || _leg$departure$airpor === void 0 ? void 0 : _leg$departure$airpor.name) !== null && _ref7 !== void 0 ? _ref7 : ''; var arrivalStationName = (_ref8 = leg === null || leg === void 0 ? void 0 : (_leg$arrival = leg.arrival) === null || _leg$arrival === void 0 ? void 0 : (_leg$arrival$airport = _leg$arrival.airport) === null || _leg$arrival$airport === void 0 ? void 0 : _leg$arrival$airport.name) !== null && _ref8 !== void 0 ? _ref8 : ''; var isOperatingAirlineDisplayed = transportationMode === _bookingLegTypes.default.AIRCRAFT && operatingAirline.code && operatingAirline.code !== carrier.code; var isReservationNumberDisplayed = transportationMode === _bookingLegTypes.default.AIRCRAFT && reservationNumber; var isAircraftTypeDisplayed = transportationMode === _bookingLegTypes.default.AIRCRAFT && vehicle.manufacturer; var isGroundTransportation = transportationMode !== _bookingLegTypes.default.AIRCRAFT; var renderFlightNumber = function renderFlightNumber() { if (transportationMode === _bookingLegTypes.default.BUS) return null; var titleNumber = null; if (transportationMode === _bookingLegTypes.default.AIRCRAFT) { titleNumber = React.createElement(_Translate.default, { t: "smartfaq.single_booking_page.accordion_cities_info.flight_no", values: { flight_number: flightNumber, carrier_code: carrier.code } }); } else if (transportationMode === _bookingLegTypes.default.TRAIN) { titleNumber = React.createElement(_Translate.default, { t: "smartfaq.single_booking_page.accordion_cities_info.train_no", values: { flight_number: flightNumber, carrier_code: carrier.code } }); } return React.createElement(_ListItem.default, { icon: React.createElement(_InformationCircle.default, null) }, titleNumber); }; return React.createElement(_PageVariant.default.Consumer, null, function (_ref9) { var urlPrefix = _ref9.urlPrefix; return React.createElement("div", { style: { paddingBottom: '16px' } }, React.createElement(_List.default, { size: "small", type: "secondary", dataTest: "legCities" }, React.createElement(React.Fragment, null, React.createElement(_ListItem.default, { icon: React.createElement(_CarrierLogo.default, { carriers: [carrier] }) }, carrierName), isOperatingAirlineDisplayed && React.createElement(_ListItem.default, { icon: React.createElement(_CarrierLogo.default, { carriers: [operatingAirline] }) }, React.createElement(_Translate.default, { t: "smartfaq.single_booking_page.accordion_cities_info.operating_airline", values: { operatingAirline: operatingAirline.name } })), renderFlightNumber(), isReservationNumberDisplayed && React.createElement(_ListItem.default, { icon: React.createElement(_Ticket.default, { size: "small", color: "secondary" }) }, React.createElement(_Translate.default, { t: "smartfaq.single_booking_page.accordion_cities_info.reservation_number", values: { reservationNumber: reservationNumber } })), isAircraftTypeDisplayed && React.createElement(_ListItem.default, { icon: React.createElement(_Airplane.default, { size: "small", color: "secondary" }) }, React.createElement(_Translate.default, { t: "smartfaq.single_booking_page.accordion_cities_info.vehicle_type", values: { vehicle_manufacturer: vehicle.manufacturer, vehicle_model: vehicle.model } })), isGroundTransportation && React.createElement(React.Fragment, null, React.createElement(_ListItem.default, { icon: React.createElement(_City.default, { size: "small", color: "secondary" }) }, departureStationName), React.createElement(_ListItem.default, { icon: React.createElement(_City.default, { size: "small", color: "secondary" }) }, arrivalStationName), React.createElement(_ListItem.default, { icon: React.createElement(_InformationCircle.default, { size: "small", customColor: theme.orbit.paletteProductNormal }), dataTest: "moreInfoLink" }, React.createElement(_TextLink.default, { href: "", dataTest: "moreInfoLink", onClick: function onClick(evt) { return _this2.onClickShowMore(evt, urlPrefix); } }, React.createElement(_Translate.default, { t: "smartfaq.single_booking_page.accordion_cities_info.trains_buses_info" }))))))); }); } }]); return LegCitiesInfo; }(React.Component); var _default = (0, _reactRelay.createFragmentContainer)((0, _styledComponents.withTheme)((0, _reactRouterDom.withRouter)(LegCitiesInfo)), { leg: function leg() { var node = require("./__generated__/AccordionLegCitiesInfo_leg.graphql"); if (node.hash && node.hash !== "c653c9e9ef4175b71eae35bdded98357") { console.error("The definition of 'AccordionLegCitiesInfo_leg' appears to have changed. Run `relay-compiler` to update the generated files to receive the expected data."); } return require("./__generated__/AccordionLegCitiesInfo_leg.graphql"); } }); exports.default = _default;