@kiwicom/smart-faq
Version:
159 lines (114 loc) • 6.3 kB
JavaScript
"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;