UNPKG

@kiwicom/smart-faq

Version:

Smart FAQ

206 lines (179 loc) 7.66 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard"); 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 _idx = _interopRequireDefault(require("idx")); 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 _bookingLegTypes = _interopRequireDefault(require("../../common/booking/bookingLegTypes")); // @flow var LegCitiesInfo = function LegCitiesInfo(props /*: Props*/ ) { var leg = props.leg, theme = props.theme; var flightNumber = leg.flightNumber || ''; var transportationMode = leg.type; var reservationNumber = leg.pnr || ''; var carrier = { code: (0, _idx.default)(leg.airline, function (_) { return _.code; }) || '', name: (0, _idx.default)(leg.airline, function (_) { return _.name; }) || '' }; 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: (0, _idx.default)(leg.operatingAirline, function (_) { return _.iata; }) || '', name: (0, _idx.default)(leg.operatingAirline, function (_) { return _.name; }) || '' }; var vehicle = { manufacturer: (0, _idx.default)(leg.vehicle, function (_) { return _.manufacturer; }) || '', model: (0, _idx.default)(leg.vehicle, function (_) { return _.model; }) || '' }; var departureStationName = (0, _idx.default)(leg, function (_) { return _.departure.airport.name; }) || ''; var arrivalStationName = (0, _idx.default)(leg, function (_) { return _.arrival.airport.name; }) || ''; 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("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(e) { e.preventDefault(); props.history.push('/faq/search/article/RkFRQXJ0aWNsZToxMjc='); } }, React.createElement(_Translate.default, { t: "smartfaq.single_booking_page.accordion_cities_info.trains_buses_info" }))))))); }; 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;