@kiwicom/smart-faq
Version:
199 lines (152 loc) • 10.4 kB
JavaScript
"use strict";
require("core-js/modules/es.array.concat");
require("core-js/modules/es.number.constructor");
require("core-js/modules/es.object.assign");
require("core-js/modules/es.object.get-own-property-descriptor");
require("core-js/modules/es.regexp.exec");
require("core-js/modules/es.string.match");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = exports.UnwrappedArticleContent = exports.THRESHOLD = exports.GUARANTEE_ARTICLE_ID = void 0;
var _style = _interopRequireDefault(require("styled-jsx/style"));
var React = _interopRequireWildcard(require("react"));
var _head = _interopRequireDefault(require("next/head"));
var _reactRouterDom = require("react-router-dom");
var _Text = _interopRequireDefault(require("@kiwicom/nitro/lib/components/Text"));
var _Text2 = _interopRequireDefault(require("@kiwicom/orbit-components/lib/Text"));
var _Heading = _interopRequireDefault(require("@kiwicom/orbit-components/lib/Heading"));
var _Separator = _interopRequireDefault(require("@kiwicom/orbit-components/lib/Separator"));
var _Stack = _interopRequireDefault(require("@kiwicom/orbit-components/lib/Stack"));
var _reactRelay = require("react-relay");
var _styledComponents = require("styled-components");
var _FAQContentRender = _interopRequireDefault(require("../../../SmartFAQ/common/FAQContentRender"));
var _GuaranteeChat = _interopRequireDefault(require("./GuaranteeChat"));
var _FAQArticleFeedback = _interopRequireDefault(require("../ArticleFeedback/FAQArticleFeedback"));
var _GuaranteeChatInfo = require("../../context/GuaranteeChatInfo");
var _PageVariant = require("../../../SmartFAQ/common/PageVariant");
var _BookingState = require("../../../SmartFAQ/context/BookingState");
var _User = require("../../../SmartFAQ/context/User");
var _UrlHelpers = require("../../../SmartFAQ/helpers/UrlHelpers");
var _LogLifecycle = _interopRequireDefault(require("../../cuckoo/components/LogLifecycle"));
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 _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
var GUARANTEE_ARTICLE_ID = 28;
exports.GUARANTEE_ARTICLE_ID = GUARANTEE_ARTICLE_ID;
var THRESHOLD = 4;
/*:: type ContainerProps = {|
...ContextRouter,
article: ArticleContentType,
|};*/
/*:: type Props = {|
...ContainerProps,
...ThemeProps,
isInGuaranteeArticle: boolean,
showGuaranteeChat: boolean,
|};*/
exports.THRESHOLD = THRESHOLD;
var ArticleContent = function ArticleContent(props
/*: Props*/
) {
return React.createElement(React.Fragment, null, React.createElement(_PageVariant.FullPageVersion, null, React.createElement("div", {
style: {
border: "".concat(props.theme.orbit.borderWidthCard, " ").concat(props.theme.orbit.borderStyleCard, " ").concat(props.theme.orbit.borderColorCard),
background: props.theme.orbit.backgroundCard,
borderRadius: props.theme.orbit.borderRadiusNormal,
paddingTop: '28px',
marginBottom: '80px'
}
}, React.createElement(NakedArticleContent, props))), React.createElement(_PageVariant.SidebarVersion, null, React.createElement(NakedArticleContent, props)));
};
var NakedArticleContent = (0, _styledComponents.withTheme)(function (props
/*: Props*/
) {
var _article$title;
var _React$useContext = React.useContext(_User.UserContext),
simpleToken = _React$useContext.simpleToken,
kwAuthToken = _React$useContext.kwAuthToken,
loginToken = _React$useContext.loginToken;
var isLoggedIn = simpleToken || kwAuthToken || loginToken;
var article = props.article,
isInGuaranteeArticle = props.isInGuaranteeArticle,
showGuaranteeChat = props.showGuaranteeChat;
var showMessage = isInGuaranteeArticle && !showGuaranteeChat && !isLoggedIn && !_UrlHelpers.isWebView;
var _React$useContext2 = React.useContext(_BookingState.BookingState),
showBooking = _React$useContext2.showBooking;
var globalStyle = "\n .faq-article-text ul {\n padding-left: 43px;\n list-style: none;\n }\n .faq-article-text ul,\n .faq-article-text ol {\n margin-left: 20px;\n padding-bottom: 20px;\n margin-bottom: 10px;\n }\n .faq-article-text li:before {\n content: '';\n display: inline-block;\n margin-right: 19px;\n width: 6px;\n height: 6px;\n margin-bottom: 2px;\n }\n :global([dir='rtl']) .faq-article-text li:before {\n margin-right: 0;\n margin-left: 19px;\n }\n .faq-article-text ul li:before {\n background-color: #d5dee7;\n }\n .faq-article-text a {\n color: ".concat(props.theme.orbit.colorTextLinkPrimaryHover, ";\n text-decoration: none;\n }\n .faq-article-text figure {\n margin: 0;\n }\n .faq-article-text img {\n max-width: 100%;\n }\n @supports (object-fit: scale-down) {\n .faq-article-text img {\n height: auto;\n object-fit: scale-down;\n }\n .faq-article-text figure {\n justify-content: center;\n }\n }\n @media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {\n .faq-article-text img {\n background-size: cover;\n }\n .faq-article-text figure {\n display: flex;\n }\n }\n .faq-article-text li {\n display: list-item;\n padding-top: 10px;\n text-indent: -25px;\n }\n .faq-article-text li,\n .faq-article-text div {\n font-size: 14px;\n font-weight: 400;\n line-height: 22px;\n }\n ");
return React.createElement("div", {
"data-cy": "faq-article-content",
className: "jsx-1263747150" + " " + ((showBooking && isLoggedIn ? 'articleContentLoggedIn' : 'articleContentLoggedOut') || "")
}, React.createElement(_Heading.default, {
type: "title2"
}, (_article$title = article.title) !== null && _article$title !== void 0 ? _article$title : ''), React.createElement("div", {
className: "jsx-1263747150" + " " + "faq-article-perex"
}, React.createElement(_Text.default, {
t: "smartfaq.faq.article.summary",
type: "attention",
weight: "bold",
element: "span"
}), React.createElement(_Text2.default, {
element: "span"
}, " ", article.perex)), React.createElement(_Separator.default, null), article.content && React.createElement("div", {
className: "jsx-1263747150" + " " + "faq-article-text"
}, React.createElement(_FAQContentRender.default, {
article: article
}, article.content)), showGuaranteeChat && React.createElement(_GuaranteeChat.default, null), showMessage && React.createElement(_Stack.default, {
spaceAfter: "large",
dataTest: "GuaranteeLoggedOut"
}, React.createElement(_Text.default, {
html: true,
t: "smartfaq.faq.article.guarantee.logged_out",
values: {
guaranteeChatThreshold: THRESHOLD
}
})), React.createElement(_Separator.default, {
spaceAfter: "medium"
}), React.createElement(_FAQArticleFeedback.default, {
articleId: Number(article.originalId)
}), React.createElement(_style.default, {
styleId: "1263747150",
css: ".articleContentLoggedIn.jsx-1263747150{padding:16px 72px 40px 80px;}.articleContentLoggedOut.jsx-1263747150{padding:16px 36px 40px;}.faq-article-perex.jsx-1263747150{padding:24px 0;line-height:20px;}.faq-article-text.jsx-1263747150{padding:24px 0;}@media only screen and (max-width:901px){.articleContentLoggedIn.jsx-1263747150,.articleContentLoggedOut.jsx-1263747150{padding:16px;}}"
}), React.createElement("style", {
dangerouslySetInnerHTML: {
__html: globalStyle
}
}));
});
var UnwrappedArticleContent = ArticleContent;
exports.UnwrappedArticleContent = UnwrappedArticleContent;
var WrappedArticle = function WrappedArticle(props
/*: ContainerProps*/
) {
var _props$article$title, _articleId, _props$article$title2;
var _React$useContext3 = React.useContext(_GuaranteeChatInfo.GuaranteeChatContext),
showGuaranteeChat = _React$useContext3.showGuaranteeChat;
var theme = React.useContext(_styledComponents.ThemeContext); // show Guarantee Chat only in Guarantee article
var articleId = props.match.params.articleId;
var isInGuaranteeArticle = Number(articleId) === GUARANTEE_ARTICLE_ID;
return React.createElement(React.Fragment, null, React.createElement(_head.default, null, React.createElement("title", null, "".concat((_props$article$title = props.article.title) !== null && _props$article$title !== void 0 ? _props$article$title : ''), " - Kiwi.com - Helpcenter")), React.createElement(ArticleContent, _extends({}, props, {
theme: theme,
showGuaranteeChat: showGuaranteeChat && isInGuaranteeArticle,
isInGuaranteeArticle: isInGuaranteeArticle
})), React.createElement(_LogLifecycle.default, {
subCategory: "FAQs",
actionMount: "articleOpened",
actionUnmount: "articleClosed",
props: {
articleId: (_articleId = articleId) !== null && _articleId !== void 0 ? _articleId : '',
articleName: (_props$article$title2 = props.article.title) !== null && _props$article$title2 !== void 0 ? _props$article$title2 : ''
}
}));
};
var _default = (0, _reactRelay.createFragmentContainer)((0, _reactRouterDom.withRouter)(WrappedArticle), {
article: function article() {
var node = require("./__generated__/ArticleContent_article.graphql");
if (node.hash && node.hash !== "3802d81d1af9dee70ca8782cc2e36d5a") {
console.error("The definition of 'ArticleContent_article' appears to have changed. Run `relay-compiler` to update the generated files to receive the expected data.");
}
return require("./__generated__/ArticleContent_article.graphql");
}
});
exports.default = _default;