/* 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;