@kiwicom/smart-faq
Version:
Smart FAQ
119 lines (93 loc) • 5.07 kB
JavaScript
"use strict";
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _idx = _interopRequireDefault(require("idx"));
var React = _interopRequireWildcard(require("react"));
var _luxon = require("luxon");
var _libphonenumberJs = require("libphonenumber-js");
var _CountryFlag = _interopRequireDefault(require("@kiwicom/orbit-components/lib/CountryFlag"));
var _InformationCircle = _interopRequireDefault(require("@kiwicom/orbit-components/lib/icons/InformationCircle"));
var _reactRelay = require("react-relay");
var _consts = require("@kiwicom/orbit-components/lib/CountryFlag/consts");
var _HoverHelpTooltip = _interopRequireDefault(require("../SmartFAQ/common/Tooltip/HoverHelpTooltip"));
// @flow
var styles = new String("div.containerPhoneNumber{padding-bottom:10px;}div.containerPhoneNumber .Tooltip{bottom:110%;right:-100px;}div.containerPhoneNumber .Tooltip-inner.Tooltip-inner{max-width:275px;width:200px;}div.containerPhoneNumber .HelpTooltip{vertical-align:top;}span.phoneNumber{margin-left:4px;margin-right:4px;}a{color:#00ad98;-webkit-text-decoration:none;text-decoration:none;font-family:'Roboto',-apple-system,'.SFNSText-Regular','San Francisco', 'Segoe UI','Helvetica Neue','Lucida Grande',sans-serif;}");
styles.__hash = "2344663726";
styles.__scoped = "div.containerPhoneNumber.jsx-1949384975{padding-bottom:10px;}div.containerPhoneNumber.jsx-1949384975 .Tooltip{bottom:110%;right:-100px;}div.containerPhoneNumber.jsx-1949384975 .Tooltip-inner.Tooltip-inner{max-width:275px;width:200px;}div.containerPhoneNumber.jsx-1949384975 .HelpTooltip{vertical-align:top;}span.phoneNumber.jsx-1949384975{margin-left:4px;margin-right:4px;}a.jsx-1949384975{color:#00ad98;-webkit-text-decoration:none;text-decoration:none;font-family:'Roboto',-apple-system,'.SFNSText-Regular','San Francisco', 'Segoe UI','Helvetica Neue','Lucida Grande',sans-serif;}";
styles.__scopedHash = "1949384975";
/*:: type Props = {|
data: PhoneType,
|};*/
function parseTime(hour
/*: string*/
) {
var currentDate = _luxon.DateTime.fromISO(hour).toFormat('DDD');
var dateWithHours = new Date("".concat(currentDate, ", ").concat(hour));
return dateWithHours.getHours() % 12 || 12;
}
function parseAvailabilityTimes(phoneLanguageAvailability, hasMultipleLanguages, language) {
var type = phoneLanguageAvailability.type;
if (type === 'NONSTOP') {
return 'Support Available in ';
} else if (type === 'WORKING_DAYS') {
var to = phoneLanguageAvailability.to,
from = phoneLanguageAvailability.from;
if (to && from && language) {
return "".concat(hasMultipleLanguages ? language : '', " Mon - Fri ").concat(parseTime(from), "am-").concat(parseTime(to), "pm; ");
}
}
return '';
}
var Phone = function Phone(_ref) {
var data = _ref.data;
var phoneNumber = data.number,
localeTerritory = data.localeTerritory,
supportedLanguages = data.supportedLanguages;
var parsedPhoneNumber = (0, _libphonenumberJs.parsePhoneNumber)(phoneNumber).formatInternational();
var flagCode = localeTerritory && _consts.CODES[localeTerritory.toUpperCase()];
var hasMultipleLanguages = supportedLanguages && supportedLanguages.length > 1;
var availabilityInfo = supportedLanguages && supportedLanguages.reduce(function (acc, supportedLanguage) {
var language = (0, _idx.default)(supportedLanguage, function (_) {
return _.language;
});
var languageAvailability = (0, _idx.default)(supportedLanguage, function (_) {
return _.phoneLanguageAvailability;
}) || {};
return "".concat(parseAvailabilityTimes(languageAvailability, hasMultipleLanguages, language)) + acc;
}, 'English 24/7;');
return React.createElement("div", {
"data-code": localeTerritory,
className: "containerPhoneNumber"
}, flagCode && React.createElement(_CountryFlag.default, {
code: flagCode
}), React.createElement("span", {
dir: "ltr",
className: "phoneNumber"
}, phoneNumber && React.createElement("a", {
href: "tel:".concat(phoneNumber.replace(/\s/g, ''))
}, parsedPhoneNumber)), React.createElement("span", {
style: {
cursor: 'pointer'
}
}, React.createElement(_HoverHelpTooltip.default, {
tooltip: availabilityInfo,
placement: "top"
}, React.createElement(_InformationCircle.default, {
size: "small",
color: "tertiary"
}))), React.createElement("style", null, styles));
};
var _default = (0, _reactRelay.createFragmentContainer)(Phone, {
data: function data() {
var node = require("./__generated__/Phone.graphql");
if (node.hash && node.hash !== "ac4da28a9aa4100a0d952acf437116cf") {
console.error("The definition of 'Phone' appears to have changed. Run `relay-compiler` to update the generated files to receive the expected data.");
}
return require("./__generated__/Phone.graphql");
}
});
exports.default = _default;