/* eslint-disable react/no-array-index-key */
import React, { Children, isValidElement, ReactNode } from "react";
import styled from "styled-components";
import { space } from "styled-system";
import ChevronRightIcon from "../Svg/Icons/ChevronRight";
import { BreadcrumbsProps } from "./types";
const Separator = styled.div`
align-items: center;
color: ${({ theme }) => theme.colors.textDisabled};
display: flex;
justify-content: center;
padding-left: 4px;
padding-right: 4px;
${({ theme }) => theme.mediaQueries.sm} {
padding-left: 8px;
padding-right: 8px;
}
${({ theme }) => theme.mediaQueries.md} {
padding-left: 16px;
padding-right: 16px;
}
`;
const StyledBreadcrumbs = styled.ul`
align-items: center;
display: flex;
flex-wrap: wrap;
list-style-type: none;
${space}
`;
const insertSeparators = (items: ReactNode[], separator: BreadcrumbsProps["separator"]) =>
items.reduce((accum: ReactNode[], item, index) => {
if (index === 0) {
return [...accum, item];
}
return [
...accum,
{separator}
,
item,
];
}, []);
const DefaultSeparator = ;
const Breadcrumbs: React.FC = ({ separator = DefaultSeparator, children }) => {
const validItems = Children.toArray(children).filter((child) => isValidElement(child));
const items = insertSeparators(validItems, separator);
return (
{items.map((item, index) => (
{item}
))}
);
};
export default Breadcrumbs;