@kiwicom/smart-faq
Version:
Smart FAQ
206 lines (179 loc) • 7.66 kB
JavaScript
"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;