@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.
68 lines (65 loc) • 2.12 kB
JavaScript
import * as React from "react";
import styled from "styled-components";
import defaultTheme from "../defaultTheme";
import Button from "../Button";
import ChevronLeft from "../icons/ChevronLeft";
import { DictionaryContext } from "../Dictionary";
import { pureTranslate } from "../Translate";
const StyledBreadcrumbs = styled.nav.withConfig({
displayName: "Breadcrumbs__StyledBreadcrumbs",
componentId: "sc-1zqkwq-0"
})(["font-family:", ";font-size:", ";"], ({
theme
}) => theme.orbit.fontFamily, ({
theme
}) => theme.orbit.fontSizeTextSmall);
StyledBreadcrumbs.defaultProps = {
theme: defaultTheme
};
const StyledBreadcrumbsList = styled.ol.withConfig({
displayName: "Breadcrumbs__StyledBreadcrumbsList",
componentId: "sc-1zqkwq-1"
})(["display:flex;flex-wrap:wrap;list-style:none;margin:0;padding:0;"]);
const StyledBackButtonWrapper = styled.span.withConfig({
displayName: "Breadcrumbs__StyledBackButtonWrapper",
componentId: "sc-1zqkwq-2"
})(["margin-right:", ";"], ({
theme
}) => theme.orbit.spaceSmall);
StyledBackButtonWrapper.defaultProps = {
theme: defaultTheme
};
const GoBackButton = ({
onClick
}) => {
const dictionary = React.useContext(DictionaryContext);
return React.createElement(StyledBackButtonWrapper, null, React.createElement(Button, {
iconLeft: React.createElement(ChevronLeft, null),
circled: true,
type: "secondary",
size: "small",
onClick: onClick,
title: pureTranslate(dictionary, "breadcrumbs_back")
}));
};
const Breadcrumbs = ({
children,
dataTest,
onGoBack
}) => React.createElement(StyledBreadcrumbs, {
"aria-label": "Breadcrumb",
role: "navigation",
"data-test": dataTest
}, React.createElement(StyledBreadcrumbsList, {
vocab: "http://schema.org/",
typeof: "BreadcrumbList"
}, onGoBack && React.createElement(GoBackButton, {
onClick: onGoBack
}), React.Children.map(children, (item, key) => {
return React.cloneElement(item, {
active: key === React.Children.count(children) - 1,
contentKey: key + 1
});
})));
export default Breadcrumbs;
export { default as BreadcrumbsItem } from "./BreadcrumbsItem";