UNPKG

@kiwicom/smart-faq

Version:

Smart FAQ

256 lines (204 loc) 9.77 kB
"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;