import { AnyRouteMatch, Link, useMatches } from '@tanstack/react-router' import { Fragment } from 'react/jsx-runtime' import { Breadcrumb, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator, } from '../ui/breadcrumb' export type BreadcrumbValue = | string | string[] | ((match: AnyRouteMatch) => string | string[]) const RouterBreadcrumb = () => { const matches = useMatches() const breadcrumbs = matches.flatMap((match) => { const staticData = match.staticData; if (!staticData?.breadcrumb) return []; const breadcrumbValue = typeof staticData.breadcrumb === 'function' ? staticData.breadcrumb(match) : staticData.breadcrumb; const items = Array.isArray(breadcrumbValue) ? breadcrumbValue : [breadcrumbValue]; return items.map((item) => ({ label: item, path: match.pathname, })); }); return ( {breadcrumbs.map((crumb, index) => { const isLast = index === breadcrumbs.length - 1 return ( {isLast ? ( {crumb.label} ) : ( {crumb.label} )} {!isLast && } ) })} ) } export default RouterBreadcrumb