import React from 'react'; import { Breadcrumbs as RACBreadcrumbs, Breadcrumb as RACBreadcrumb, type BreadcrumbProps as RACBreadcrumbProps, type BreadcrumbsProps as RACBreadcrumbsProps, type LinkProps, } from 'react-aria-components'; import { Link } from '../Link/Link'; import { HomeIcon } from '../../components/icons'; export type Breadcrumb = { '@id': string; title: string; icon?: React.ReactNode; }; export function Breadcrumb( props: RACBreadcrumbProps & Omit & { separator?: React.ReactNode; value?: Breadcrumb; }, ) { return ( {({ isCurrent }) => ( <> {props.value?.icon && props.value?.icon} {!isCurrent && props.separator && props.separator} )} ); } interface BreadcrumbsProps extends RACBreadcrumbsProps { /** * If we should include a root item in the breadcrumbs, we provide a Breadcrumb object. */ root?: Breadcrumb; } /** * Breadcrumbs display a hierarchy of links to the current page or resource in an application. */ export function Breadcrumbs(props: BreadcrumbsProps) { const { root, items } = props; let itemsWithRoot: typeof items; if (root && items) { const rootItem = { '@id': root['@id'] || '/', title: 'Home', icon: root.icon || , } as T; itemsWithRoot = [rootItem, ...items!]; } return ; } // TODO: Unused? It's not exported export function BreadcrumbsSlot( props: BreadcrumbsProps, ) { const { root, items } = props; let itemsWithRoot: typeof items; if (root && items) { const rootItem = { '@id': root['@id'] || '/', title: 'Home', icon: root.icon || , } as T; itemsWithRoot = [rootItem, ...items!]; } return ( ); }