UNPKG

@kiwicom/smart-faq

Version:

Smart FAQ

163 lines (128 loc) 6.68 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 _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray")); var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread")); var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")); var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass")); var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn")); var _getPrototypeOf3 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf")); 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 _reactResponsive = _interopRequireDefault(require("react-responsive")); var _Breadcrumb = _interopRequireDefault(require("./Breadcrumb")); var _BackArrow = _interopRequireDefault(require("./BackArrow")); var _responsiveStyleHelperClasses = _interopRequireDefault(require("../../../SmartFAQ/common/responsiveStyleHelperClasses")); var _BookingState = require("../../../SmartFAQ/context/BookingState"); var _User = require("../../../SmartFAQ/context/User"); // @flow var style = new String("[dir='rtl']{margin-left:16px;}.breadcrumbs{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;margin-bottom:24px;}@media only screen and (max-width:901px){.breadcrumbs{padding:30px 16px;margin-bottom:0px;}}"); style.__hash = "2071888332"; style.__scoped = "[dir='rtl'] .jsx-1678981485{margin-left:16px;}.breadcrumbs.jsx-1678981485{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;margin-bottom:24px;}@media only screen and (max-width:901px){.breadcrumbs.jsx-1678981485{padding:30px 16px;margin-bottom:0px;}}"; style.__scopedHash = "1678981485"; /*:: type Props = {| loginToken: ?string, simpleToken: ?string, kwAuthToken: ?string, breadcrumbs: Array<{ +id?: string, +title: ?string }>, |};*/ var CustomBreadcrumbs = /*#__PURE__*/ function (_React$Component) { (0, _inherits2.default)(CustomBreadcrumbs, _React$Component); function CustomBreadcrumbs() { var _getPrototypeOf2; var _this; (0, _classCallCheck2.default)(this, CustomBreadcrumbs); for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } _this = (0, _possibleConstructorReturn2.default)(this, (_getPrototypeOf2 = (0, _getPrototypeOf3.default)(CustomBreadcrumbs)).call.apply(_getPrototypeOf2, [this].concat(args))); (0, _defineProperty2.default)((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)), "renderBreadCrumbs", function (breadcrumbs, maxBreadcrumbsLength) { var breadcrubsLength = breadcrumbs.map(function (b) { return b.title; }).join().length; if (maxBreadcrumbsLength && breadcrubsLength > maxBreadcrumbsLength) { var length = breadcrumbs.length; breadcrumbs = breadcrumbs.map(function (b, i) { if (i !== 0 && i !== length - 1 && i !== length - 2) { return (0, _objectSpread2.default)({}, b, { title: '...' }); } return b; }); } return breadcrumbs.slice(1, breadcrumbs.length - 1).map(function (breadcrumb) { return breadcrumb.title ? React.createElement(_Breadcrumb.default, { key: breadcrumb.id, breadcrumb: { id: breadcrumb.id, title: breadcrumb.title } }) : null; }); }); return _this; } (0, _createClass2.default)(CustomBreadcrumbs, [{ key: "render", value: function render() { var _this$props = this.props, breadcrumbs = _this$props.breadcrumbs, loginToken = _this$props.loginToken, simpleToken = _this$props.simpleToken, kwAuthToken = _this$props.kwAuthToken; var firstCategory = (0, _toConsumableArray2.default)(breadcrumbs).shift(); var lastCategory = (0, _toConsumableArray2.default)(breadcrumbs).pop(); var previousCategory = (0, _toConsumableArray2.default)(breadcrumbs).slice(-2)[0]; var id = previousCategory && previousCategory.id; var isLoggedIn = loginToken || simpleToken || kwAuthToken; var maxBreadcrumbsLengthMobile = 55; return React.createElement("div", { "data-cy": "faq-breadcrumbs", className: "jsx-".concat(style.__scopedHash, " jsx-").concat(_responsiveStyleHelperClasses.default.__scopedHash) + " " + "breadcrumbs" }, React.createElement(_BookingState.BookingState.Consumer, null, function (_ref) { var showBooking = _ref.showBooking; if (isLoggedIn && showBooking) { return React.createElement("span", { "data-cy": "back-button", className: "jsx-".concat(style.__scopedHash, " jsx-").concat(_responsiveStyleHelperClasses.default.__scopedHash) + " " + "desktopOnly" }, React.createElement(_BackArrow.default, { id: id })); } return null; }), firstCategory.title && React.createElement(_Breadcrumb.default, { breadcrumb: { title: firstCategory.title } }), React.createElement(_reactResponsive.default, { maxWidth: "600px" }, this.renderBreadCrumbs(breadcrumbs, maxBreadcrumbsLengthMobile)), React.createElement(_reactResponsive.default, { minWidth: "600px" }, this.renderBreadCrumbs(breadcrumbs)), lastCategory.title && React.createElement(_Breadcrumb.default, { breadcrumb: { title: lastCategory.title }, isCurrent: true }), React.createElement(_style.default, { styleId: style.__scopedHash, css: style.__scoped }), React.createElement(_style.default, { styleId: _responsiveStyleHelperClasses.default.__scopedHash, css: _responsiveStyleHelperClasses.default.__scoped })); } }]); return CustomBreadcrumbs; }(React.Component); var _default = (0, _User.withToken)(CustomBreadcrumbs); exports.default = _default;