useBreadcrumbs
Derives a breadcrumb trail from the current URL and an optional route configuration, then exposes it as a BreadcrumbItem[] array.
Import
import { useBreadcrumbs } from "@xocialive/ui-components/hooks";
import type { BreadcrumbItem } from "@xocialive/ui-components/hooks";
Usage
function PageHeader() {
const breadcrumbs = useBreadcrumbs();
return (
<Breadcrumbs>
{breadcrumbs.map((crumb, i) =>
i < breadcrumbs.length - 1 ? (
<Link key={crumb.path} to={crumb.path}>
{crumb.label}
</Link>
) : (
<Typography key="current">{crumb.label}</Typography>
)
)}
</Breadcrumbs>
);
}
With custom route labels
const breadcrumbs = useBreadcrumbs({
routeLabels: {
"/users": "Users",
"/users/:id": "User Details",
"/users/:id/edit": "Edit User",
},
});
BreadcrumbItem
type BreadcrumbItem = {
label: string;
path: string;
};