@kiwicom/smart-faq
Version:
210 lines (161 loc) • 8.88 kB
JavaScript
"use strict";
require("core-js/modules/es.array.iterator");
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");
require("core-js/modules/es.object.to-string");
require("core-js/modules/es.string.iterator");
require("core-js/modules/es.weak-map");
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 _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 _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; if (obj != null) { var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } 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;