UNPKG

@kiwicom/smart-faq

Version:

198 lines (155 loc) 8.24 kB
"use strict"; require("core-js/modules/es.array.slice"); require("core-js/modules/es.function.name"); require("core-js/modules/es.object.freeze"); require("core-js/modules/es.object.get-own-property-descriptor"); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var React = _interopRequireWildcard(require("react")); var _reactRelay = require("react-relay"); var _Badge = _interopRequireDefault(require("@kiwicom/orbit-components/lib/Badge")); var _Translate = _interopRequireDefault(require("@kiwicom/nitro/lib/components/Translate")); var _InformationCircle = _interopRequireDefault(require("@kiwicom/orbit-components/lib/icons/InformationCircle")); var _Download = _interopRequireDefault(require("@kiwicom/orbit-components/lib/icons/Download")); var _FlightDirect = _interopRequireDefault(require("@kiwicom/orbit-components/lib/icons/FlightDirect")); var _Card = require("@kiwicom/orbit-components/lib/Card"); var _Stack = _interopRequireDefault(require("@kiwicom/orbit-components/lib/Stack")); var _Text = _interopRequireDefault(require("@kiwicom/orbit-components/lib/Text")); var _TextLink = _interopRequireDefault(require("@kiwicom/orbit-components/lib/TextLink")); var _ButtonLink = _interopRequireDefault(require("@kiwicom/orbit-components/lib/ButtonLink")); var _Tooltip = _interopRequireDefault(require("@kiwicom/orbit-components/lib/Tooltip")); var _styledComponents = _interopRequireDefault(require("styled-components")); var _UrlHelpers = require("../../../../SmartFAQ/helpers/UrlHelpers"); var _events = require("../../../../const/events"); var _LogClick = _interopRequireDefault(require("../../../../components/Log/LogClick")); var _LogHover = _interopRequireDefault(require("../../../../components/Log/LogHover")); 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 _templateObject() { var data = _taggedTemplateLiteral(["\n padding-top: 16px;\n"]); _templateObject = function _templateObject() { return data; }; return data; } function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); } var Wrapper = _styledComponents.default.div(_templateObject()); /*:: type Props = {| data: BoardingPassesDescriptionProps, mmbUrl: string, |};*/ var BoardingPassesItem = function BoardingPassesItem(_ref) { var _data$leg, _data$leg$departure, _data$leg$departure$a, _data$leg$departure$a2, _data$leg2, _data$leg2$arrival, _data$leg2$arrival$ai, _data$leg2$arrival$ai2, _data$leg3, _data$availableAt; var data = _ref.data, mmbUrl = _ref.mmbUrl; if (data.leg === null) return null; var departureCity = ((_data$leg = data.leg) === null || _data$leg === void 0 ? void 0 : (_data$leg$departure = _data$leg.departure) === null || _data$leg$departure === void 0 ? void 0 : (_data$leg$departure$a = _data$leg$departure.airport) === null || _data$leg$departure$a === void 0 ? void 0 : (_data$leg$departure$a2 = _data$leg$departure$a.city) === null || _data$leg$departure$a2 === void 0 ? void 0 : _data$leg$departure$a2.name) || ''; var arrivalCity = ((_data$leg2 = data.leg) === null || _data$leg2 === void 0 ? void 0 : (_data$leg2$arrival = _data$leg2.arrival) === null || _data$leg2$arrival === void 0 ? void 0 : (_data$leg2$arrival$ai = _data$leg2$arrival.airport) === null || _data$leg2$arrival$ai === void 0 ? void 0 : (_data$leg2$arrival$ai2 = _data$leg2$arrival$ai.city) === null || _data$leg2$arrival$ai2 === void 0 ? void 0 : _data$leg2$arrival$ai2.name) || ''; var vehicleType = (_data$leg3 = data.leg) === null || _data$leg3 === void 0 ? void 0 : _data$leg3.type; var boardingPassUrl = data.boardingPassUrl || ''; var availableAt = (_data$availableAt = data.availableAt) !== null && _data$availableAt !== void 0 ? _data$availableAt : ''; var availabilityStatus = data.availabilityStatus; var moreInfoButton = React.createElement(_LogClick.default, { event: _events.events.BP_MORE_INFO }, function (_ref2) { var onClick = _ref2.onClick; return React.createElement(_TextLink.default, { href: (0, _UrlHelpers.replaceWithCurrentDomain)(mmbUrl), onClick: onClick, external: true, type: "secondary", size: "small" }, React.createElement(_Translate.default, { t: "smartfaq.boarding_pass_info.more_info" })); }); var renderInfo = function renderInfo() { switch (availabilityStatus) { case 'AVAILABLE': return React.createElement(_LogClick.default, { event: _events.events.BP_DOWNLOAD }, function (_ref3) { var onClick = _ref3.onClick; return React.createElement(_ButtonLink.default, { href: boardingPassUrl, onClick: onClick, iconLeft: React.createElement(_Download.default, null), external: true, size: "small" }, React.createElement(_Translate.default, { t: "smartfaq.boarding_pass_info.download" })); }); case 'IN_FUTURE': return React.createElement(_Text.default, { size: "small" }, React.createElement(_Translate.default, { t: "smartfaq.boarding_pass_info.available_at", values: { date: availableAt } })); case 'AT_AIRPORT': if (vehicleType !== 'AIRCRAFT') { return React.createElement(_Text.default, { type: "critical", size: "small" }, React.createElement(_Translate.default, { t: "smartfaq.boarding_pass_info.in_process" })); } return React.createElement(_Tooltip.default, { content: React.createElement(_Translate.default, { t: "smartfaq.boarding_pass_info.airport_check_in.hover" }), preferredPosition: "top", size: "small" }, React.createElement(_LogHover.default, { event: _events.events.BP_SHOW_TOOLTIP }, function (_ref4) { var onMouseOver = _ref4.onMouseOver; return React.createElement("div", { onMouseOver: onMouseOver }, React.createElement(_Badge.default, { type: "info", icon: React.createElement(_InformationCircle.default, null) }, React.createElement(_Translate.default, { t: "smartfaq.boarding_pass_info.airport_check_in" }))); })); case 'OTHER': default: return moreInfoButton; } }; return React.createElement(_Card.CardSection, null, React.createElement(Wrapper, null, React.createElement(_Stack.default, { flex: true, justify: "between", align: "center", dataTest: "boardingPassesRow" }, React.createElement(_Stack.default, { inline: true, align: "center", spacing: "none" }, React.createElement(_Text.default, { weight: "bold" }, departureCity), React.createElement(_FlightDirect.default, { reverseOnRtl: true, size: "medium", customColor: "#bac7d5" }), React.createElement(_Text.default, { weight: "bold" }, arrivalCity)), renderInfo()))); }; var _default = (0, _reactRelay.createFragmentContainer)(BoardingPassesItem, { data: function data() { var node = require("./__generated__/BoardingPassesItem.graphql"); if (node.hash && node.hash !== "68802d35b68a4540bc2bbf4621e876f5") { console.error("The definition of 'BoardingPassesItem' appears to have changed. Run `relay-compiler` to update the generated files to receive the expected data."); } return require("./__generated__/BoardingPassesItem.graphql"); } }); exports.default = _default;