UNPKG

@kiwicom/smart-faq

Version:

159 lines (114 loc) 6.3 kB
"use strict"; require("core-js/modules/es.array.concat"); require("core-js/modules/es.array.slice"); 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 = exports.RawContact = void 0; var React = _interopRequireWildcard(require("react")); var _reactRelay = require("react-relay"); var _context = _interopRequireDefault(require("@kiwicom/nitro/lib/services/log/context")); var _Separator = _interopRequireDefault(require("@kiwicom/orbit-components/lib/Separator")); var _ButtonLink = _interopRequireDefault(require("@kiwicom/orbit-components/lib/ButtonLink")); var _Stack = _interopRequireDefault(require("@kiwicom/orbit-components/lib/Stack")); var _List = _interopRequireWildcard(require("@kiwicom/orbit-components/lib/List")); var _Text = _interopRequireDefault(require("@kiwicom/nitro/lib/components/Text")); var _Phone = _interopRequireDefault(require("@kiwicom/orbit-components/lib/icons/Phone")); var _ChevronDown = _interopRequireDefault(require("@kiwicom/orbit-components/lib/icons/ChevronDown")); var _orbitDesignTokens = require("@kiwicom/orbit-design-tokens"); var _libphonenumberJs = require("libphonenumber-js"); var _styledComponents = _interopRequireDefault(require("styled-components")); var _ContactUsLink = _interopRequireDefault(require("../../common/ContactUsLink/ContactUsLink")); var _Language = require("../../context/Language"); var _langInfos = require("../../../translations/langInfos"); var _events = require("../../../const/events"); 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 margin-top: ", ";\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(), _orbitDesignTokens.defaultTokens.spaceXLarge); /*:: type Props = {| language: string, booking: ContactBookingType, ...ThemeProps, |};*/ var Contact = function Contact(_ref) { var _ref3, _booking$customerSupp; var booking = _ref.booking, language = _ref.language; var _React$useContext = React.useContext(_context.default), log = _React$useContext.log; var formatPhoneNumber = function formatPhoneNumber(phoneNumber) { try { return (0, _libphonenumberJs.parsePhoneNumber)(phoneNumber).formatInternational(); } catch (err) { if (language === 'en') { log(_events.events.CS_PHONES_NOT_RETRIEVED, { language: language }); } return phoneNumber; } }; var renderContactPageLink = function renderContactPageLink() { return React.createElement(_Stack.default, { spaceAfter: "largest" }, React.createElement(_ContactUsLink.default, { translationKey: "smartfaq.single_booking_page.call_us" })); }; var renderPhoneNumber = function renderPhoneNumber(phoneNumber, language) { var _ref2, _langInfos$language; var formattedPhoneNumber = formatPhoneNumber(phoneNumber); // FIXME this is soo lame! // use Intl context for any lang info or even better -> update GraphQL so it returns "CustomerSupportNumber" type var languageCode = (_ref2 = (_langInfos$language = _langInfos.langInfos[language]) === null || _langInfos$language === void 0 ? void 0 : _langInfos$language.countriesTranslations) !== null && _ref2 !== void 0 ? _ref2 : ''; return React.createElement(_Stack.default, { spaceAfter: "largest" }, React.createElement(_ButtonLink.default, { iconRight: React.createElement(_ChevronDown.default, null), iconLeft: React.createElement(_Phone.default, null), external: true, transparent: true, href: "/".concat(language, "/content/feedback"), dataTest: "contactPhone" }, "".concat(formattedPhoneNumber, " ").concat(languageCode))); }; var phoneNumber = (_ref3 = (_booking$customerSupp = booking.customerSupport) === null || _booking$customerSupp === void 0 ? void 0 : _booking$customerSupp.phoneNumber) !== null && _ref3 !== void 0 ? _ref3 : ''; var formattedPhoneNumber = formatPhoneNumber(phoneNumber); return React.createElement(Wrapper, { "data-cy": "contact" }, React.createElement(_Separator.default, null), React.createElement(_Text.default, { size: "large", type: "attention", spaceAfter: "medium", t: "smartfaq.singe_booking_page.contact.title" }), formattedPhoneNumber ? renderPhoneNumber(phoneNumber, language) : renderContactPageLink(), React.createElement(_List.default, null, React.createElement(_List.ListItem, null, React.createElement(_Text.default, { element: "span", html: true, t: "smartfaq.single_booking_page.instructions.name" })), React.createElement(_List.ListItem, null, React.createElement(_Text.default, { element: "span", html: true, t: "smartfaq.single_booking_page.instructions.email" })))); }; var RawContact = Contact; exports.RawContact = RawContact; var _default = (0, _reactRelay.createFragmentContainer)((0, _Language.withLanguage)(Contact), { booking: function booking() { var node = require("./__generated__/Contact_booking.graphql"); if (node.hash && node.hash !== "af1c1d41d43864b1c74479120294c030") { console.error("The definition of 'Contact_booking' appears to have changed. Run `relay-compiler` to update the generated files to receive the expected data."); } return require("./__generated__/Contact_booking.graphql"); } }); exports.default = _default;