import DownOutlined from '@ant-design/icons/DownOutlined'; import * as React from 'react'; import { ConfigContext } from '../config-provider'; import type { DropdownProps } from '../dropdown/dropdown'; import Dropdown from '../dropdown/dropdown'; export interface BreadcrumbItemProps { prefixCls?: string; separator?: React.ReactNode; href?: string; overlay?: DropdownProps['overlay']; dropdownProps?: DropdownProps; onClick?: React.MouseEventHandler; className?: string; children?: React.ReactNode; } interface BreadcrumbItemInterface extends React.FC { __ANT_BREADCRUMB_ITEM: boolean; } const BreadcrumbItem: BreadcrumbItemInterface = ({ prefixCls: customizePrefixCls, separator = '/', children, overlay, dropdownProps, ...restProps }) => { const { getPrefixCls } = React.useContext(ConfigContext); const prefixCls = getPrefixCls('breadcrumb', customizePrefixCls); /** If overlay is have Wrap a Dropdown */ const renderBreadcrumbNode = (breadcrumbItem: React.ReactNode) => { if (overlay) { return ( {breadcrumbItem} ); } return breadcrumbItem; }; let link: React.ReactNode; if ('href' in restProps) { link = ( {children} ); } else { link = ( {children} ); } // wrap to dropDown link = renderBreadcrumbNode(link); if (children !== undefined && children !== null) { return (
  • {link} {separator && {separator}}
  • ); } return null; }; BreadcrumbItem.__ANT_BREADCRUMB_ITEM = true; export default BreadcrumbItem;