@kiwicom/smart-faq
Version:
Smart FAQ
256 lines (204 loc) • 9.77 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 _style = _interopRequireDefault(require("styled-jsx/style"));
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
var React = _interopRequireWildcard(require("react"));
var _classnames = _interopRequireDefault(require("classnames"));
require("url-search-params-polyfill");
var _InitIntl = _interopRequireDefault(require("@kiwicom/nitro/lib/components/InitIntl"));
var intlContext = _interopRequireWildcard(require("@kiwicom/nitro/lib/services/intl/context"));
var _Routes = _interopRequireDefault(require("./SmartFAQ/Routes"));
var _GlobalStyles = _interopRequireDefault(require("./SmartFAQ/GlobalStyles"));
var _Close = _interopRequireDefault(require("./SmartFAQ/context/Close"));
var _Language = require("./SmartFAQ/context/Language");
var _User = require("./SmartFAQ/context/User");
var _PageVariant = _interopRequireDefault(require("./SmartFAQ/context/PageVariant"));
var _BookingState = _interopRequireDefault(require("./SmartFAQ/context/BookingState"));
var _SearchState = _interopRequireDefault(require("./SmartFAQ/context/SearchState"));
var _SelectedBooking = _interopRequireDefault(require("./SmartFAQ/context/SelectedBooking"));
var _ExtraInfoState = _interopRequireDefault(require("./SmartFAQ/context/ExtraInfoState"));
var _Emergencies = _interopRequireDefault(require("./SmartFAQ/context/Emergencies"));
var _ErrorBoundary = _interopRequireDefault(require("./SmartFAQ/common/ErrorBoundary"));
var _trackers = require("./shared/helpers/analytics/trackers");
var _MobileSafariScroll = _interopRequireDefault(require("./SmartFAQ/helpers/MobileSafariScroll"));
var _GuaranteeChatInfo = _interopRequireDefault(require("./shared/context/GuaranteeChatInfo"));
var _langInfos = require("./translations/langInfos");
var _enKeys = _interopRequireDefault(require("./translations/enKeys.json"));
var _tracker = require("./shared/cuckoo/tracker");
// @flow
/* eslint-disable jsx-a11y/no-static-element-interactions */
var style = function style(theme) {
var _defaultExport = new String(".smartFAQ{display:none;position:fixed;min-width:480px;top:0;bottom:0;right:0;background-color:".concat(theme.orbit.backgroundModal, ";font-family:").concat(theme.orbit.fontFamily, ";}.smartFAQ.open{display:block;}.smartFAQ *{box-sizing:border-box;font-family:").concat(theme.orbit.fontFamily, ";}@media only screen and (max-width:901px){.smartFAQ{min-width:100%;}}"));
_defaultExport.__hash = "384609333";
_defaultExport.__scoped = ".smartFAQ.jsx-1383444468{display:none;position:fixed;min-width:480px;top:0;bottom:0;right:0;background-color:".concat(theme.orbit.backgroundModal, ";font-family:").concat(theme.orbit.fontFamily, ";}.smartFAQ.open.jsx-1383444468{display:block;}.smartFAQ.jsx-1383444468 *.jsx-1383444468{box-sizing:border-box;font-family:").concat(theme.orbit.fontFamily, ";}@media only screen and (max-width:901px){.smartFAQ.jsx-1383444468{min-width:100%;}}");
_defaultExport.__scopedHash = "1383444468";
return _defaultExport;
};
/*:: type State = {|
showBooking: boolean,
userContext: UserContextType,
|};*/
var SmartFAQApp =
/*#__PURE__*/
function (_React$PureComponent) {
(0, _inherits2.default)(SmartFAQApp, _React$PureComponent);
(0, _createClass2.default)(SmartFAQApp, null, [{
key: "getDerivedStateFromProps",
value: function getDerivedStateFromProps(nextProps
/*: SmartFAQProps*/
) {
if (nextProps.cuckoo) {
(0, _tracker.setTracker)(nextProps.cuckoo);
}
return {
showBooking: !nextProps.openArticle,
userContext: {
user: nextProps.user,
onLogin: nextProps.onLogin,
onLogout: nextProps.onLogout,
loginToken: nextProps.loginToken,
simpleToken: nextProps.simpleToken,
kwAuthToken: nextProps.kwAuthToken,
brand: nextProps.brand
}
};
}
}]);
function SmartFAQApp(props
/*: SmartFAQProps*/
) {
var _this;
(0, _classCallCheck2.default)(this, SmartFAQApp);
_this = (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(SmartFAQApp).call(this, props));
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)), "handleClose", function () {
_this.props.onToggle(false);
});
_this.state = {
showBooking: !props.openArticle,
userContext: {
user: props.user,
onLogin: props.onLogin,
onLogout: props.onLogout,
loginToken: props.loginToken,
simpleToken: props.simpleToken,
kwAuthToken: props.kwAuthToken,
brand: props.brand
}
};
if (props.cuckoo) {
(0, _tracker.setTracker)(props.cuckoo);
}
return _this;
}
(0, _createClass2.default)(SmartFAQApp, [{
key: "renderApp",
value: function renderApp() {
var _this2 = this;
var _this$props = this.props,
isOpen = _this$props.isOpen,
emergencies = _this$props.emergencies,
language = _this$props.language;
var langInfo = _langInfos.langInfos[language];
var translations = this.props.translations ? this.props.translations : _enKeys.default;
var intl = {
language: langInfo,
translations: translations
};
return React.createElement("div", {
"data-test": "SmartFAQHelp",
className: _style.default.dynamic([["1772301477", [isOpen ? 'hidden' : 'auto']]]) + " " + ((0, _classnames.default)('smartFAQ open') || "")
}, React.createElement("meta", {
name: "viewport",
content: "width=device-width, initial-scale=1 shrink-to-fit=no",
className: _style.default.dynamic([["1772301477", [isOpen ? 'hidden' : 'auto']]])
}), React.createElement("meta", {
httpEquiv: "X-UA-Compatible",
content: "IE=edge",
className: _style.default.dynamic([["1772301477", [isOpen ? 'hidden' : 'auto']]])
}), React.createElement("link", {
href: "https://fonts.googleapis.com/css?family=Roboto",
rel: "stylesheet",
className: _style.default.dynamic([["1772301477", [isOpen ? 'hidden' : 'auto']]])
}), React.createElement(_ErrorBoundary.default, null, React.createElement(_InitIntl.default, {
raw: intl
}, function (intl) {
return React.createElement(intlContext.Provider, {
value: intl
}, React.createElement(_Language.LanguageContext.Provider, {
value: language
}, React.createElement(_Close.default.Provider, {
value: _this2.handleClose
}, React.createElement(_User.UserContext.Provider, {
value: _this2.state.userContext
}, React.createElement(_SearchState.default, null, React.createElement(_Emergencies.default.Provider, {
value: emergencies
}, React.createElement(_SelectedBooking.default, {
bid: _this2.props.bid
}, React.createElement(_BookingState.default, {
onLogout: _this2.props.onLogout,
showBooking: _this2.state.showBooking
}, React.createElement(_ExtraInfoState.default, null, React.createElement(_GuaranteeChatInfo.default, {
enableChat: _this2.props.enableChat,
chatConfig: _this2.props.chatConfig
}, React.createElement(_PageVariant.default.Provider, {
value: {
variant: 'sidebar'
}
}, React.createElement(_Routes.default, {
isOpen: isOpen,
onToggle: _this2.props.onToggle,
openArticle: _this2.props.openArticle
}), React.createElement(_GlobalStyles.default, null))))))))))));
})), React.createElement(_style.default, {
styleId: "1772301477",
css: "body{overflow-y:".concat(isOpen ? 'hidden' : 'auto', ";}"),
dynamic: [isOpen ? 'hidden' : 'auto']
}), React.createElement(_MobileSafariScroll.default, {
isOpen: isOpen
}));
}
}, {
key: "render",
value: function render() {
var _this3 = this;
if (typeof window !== 'undefined' && window.Raven) {
return window.Raven.context(function () {
return _this3.renderApp();
});
}
return this.renderApp();
}
}]);
return SmartFAQApp;
}(React.PureComponent);
var isLoggedIn = function isLoggedIn(props) {
return !!props.user || !!props.simpleToken || !!props.kwAuthToken;
};
var EnterTrackedApp = (0, _trackers.EnterTracker)(SmartFAQApp, 'smartFAQ', function (props) {
return {
action: 'clickOnHelp',
loggedIn: isLoggedIn(props)
};
});
var TimeTrackedApp = (0, _trackers.TimeTracker)(EnterTrackedApp, 'smartFAQ', function (props) {
return {
action: 'close',
loggedIn: isLoggedIn(props)
};
});
if (typeof window !== 'undefined') {
window.SmartFAQApp = TimeTrackedApp;
}
var _default = TimeTrackedApp;
exports.default = _default;