UNPKG

@kiwicom/orbit-components

Version:

Orbit-components is a React component library which provides developers with the easiest possible way of building Kiwi.com’s products.

135 lines (110 loc) 4.71 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard"); Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "BreadcrumbsItem", { enumerable: true, get: function get() { return _BreadcrumbsItem.default; } }); exports.default = void 0; var React = _interopRequireWildcard(require("react")); var _styledComponents = _interopRequireDefault(require("styled-components")); var _defaultTheme = _interopRequireDefault(require("../defaultTheme")); var _Button = _interopRequireDefault(require("../Button")); var _ChevronLeft = _interopRequireDefault(require("../icons/ChevronLeft")); var _getSpacingToken = _interopRequireDefault(require("../common/getSpacingToken")); var _useTranslate = _interopRequireDefault(require("../hooks/useTranslate")); var _rtl = require("../utils/rtl"); var _TextLink = _interopRequireDefault(require("../TextLink")); var _Hide = _interopRequireDefault(require("../Hide")); var _BreadcrumbsItem = _interopRequireDefault(require("./BreadcrumbsItem")); var StyledBreadcrumbs = _styledComponents.default.nav.withConfig({ displayName: "Breadcrumbs__StyledBreadcrumbs", componentId: "sc-ymjqy4-0" })(["font-family:", ";font-size:", ";margin-bottom:", ";"], function (_ref) { var theme = _ref.theme; return theme.orbit.fontFamily; }, function (_ref2) { var theme = _ref2.theme; return theme.orbit.fontSizeTextSmall; }, _getSpacingToken.default); // $FlowFixMe: https://github.com/flow-typed/flow-typed/issues/3653#issuecomment-568539198 StyledBreadcrumbs.defaultProps = { theme: _defaultTheme.default }; var StyledBreadcrumbsList = _styledComponents.default.ol.withConfig({ displayName: "Breadcrumbs__StyledBreadcrumbsList", componentId: "sc-ymjqy4-1" })(["display:flex;flex-wrap:wrap;list-style:none;margin:0;padding:0;"]); var StyledBackButtonWrapper = _styledComponents.default.span.withConfig({ displayName: "Breadcrumbs__StyledBackButtonWrapper", componentId: "sc-ymjqy4-2" })(["margin-", ":", ";"], _rtl.right, function (_ref3) { var theme = _ref3.theme; return theme.orbit.spaceSmall; }); // $FlowFixMe: https://github.com/flow-typed/flow-typed/issues/3653#issuecomment-568539198 StyledBackButtonWrapper.defaultProps = { theme: _defaultTheme.default }; var GoBackButton = function GoBackButton(_ref4) { var onClick = _ref4.onClick, backHref = _ref4.backHref; var translate = (0, _useTranslate.default)(); return /*#__PURE__*/React.createElement(StyledBackButtonWrapper, null, /*#__PURE__*/React.createElement(_Button.default, { iconLeft: /*#__PURE__*/React.createElement(_ChevronLeft.default, { reverseOnRtl: true }), circled: true, type: "secondary", size: "small", onClick: onClick, href: backHref, title: translate("breadcrumbs_back") })); }; var Breadcrumbs = function Breadcrumbs(props) { var translate = (0, _useTranslate.default)(); var children = props.children, dataTest = props.dataTest, onGoBack = props.onGoBack, _props$goBackTitle = props.goBackTitle, goBackTitle = _props$goBackTitle === void 0 ? translate("breadcrumbs_back") : _props$goBackTitle, spaceAfter = props.spaceAfter, backHref = props.backHref; return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(_Hide.default, { on: ["smallMobile", "mediumMobile"] }, /*#__PURE__*/React.createElement(StyledBreadcrumbs, { "aria-label": "Breadcrumb", "data-test": dataTest, spaceAfter: spaceAfter }, /*#__PURE__*/React.createElement(StyledBreadcrumbsList, { itemScope: true, itemType: "http://schema.org/BreadcrumbList" }, onGoBack || backHref ? /*#__PURE__*/React.createElement(GoBackButton, { backHref: backHref, onClick: onGoBack }) : null, React.Children.map(children, function (item, key) { if ( /*#__PURE__*/React.isValidElement(item)) { return /*#__PURE__*/React.cloneElement(item, { active: key === React.Children.count(children) - 1, contentKey: key + 1 }); } return null; })))), /*#__PURE__*/React.createElement(_Hide.default, { on: ["largeMobile", "tablet", "desktop", "largeDesktop"] }, onGoBack || backHref ? /*#__PURE__*/React.createElement(_TextLink.default, { standAlone: true, iconLeft: /*#__PURE__*/React.createElement(_ChevronLeft.default, { reverseOnRtl: true }), dataTest: "BreadcrumbsBack", onClick: onGoBack, href: backHref }, goBackTitle) : null)); }; var _default = Breadcrumbs; exports.default = _default;