// @flow strict import * as React from 'react'; import classify from '../../utils/classify'; import {Icon} from '../Icon'; import type {BaseLinkProps} from '../Link'; import css from './Breadcrumbs.module.css'; type ClassNames = $ReadOnly<{wrapper?: string}>; export type BreadcrumbsProps = { classNames?: ClassNames, children: React.Node, linkComponent?: React.AbstractComponent, }; const BreadcrumbSeparator = (): React.Node => ( ); export const Breadcrumbs: React$AbstractComponent< BreadcrumbsProps, HTMLDivElement, > = React.forwardRef( ({classNames, children, linkComponent}: BreadcrumbsProps, ref) => { const total = React.Children.count(children); return (
{React.Children.map(children, (child, idx) => ( // eslint-disable-next-line react/no-array-index-key {/*add linkComponent to BreadcrumbLinks only, otherwise return original element */} {React.isValidElement(child) && child?.type?.displayName === 'BreadcrumbLink' ? React.cloneElement(child, {linkComponent}) : child} {/*Add Separator*/} {idx < total - 1 && } ))}
); }, );