@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
JavaScript
"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;