mirror of
https://github.com/ForFarmTeam/ForFarm.git
synced 2025-12-19 14:04:08 +01:00
48 lines
1.3 KiB
TypeScript
48 lines
1.3 KiB
TypeScript
import {
|
|
Breadcrumb,
|
|
BreadcrumbItem,
|
|
BreadcrumbLink,
|
|
BreadcrumbList,
|
|
BreadcrumbPage,
|
|
BreadcrumbSeparator,
|
|
} from "@/components/ui/breadcrumb";
|
|
import React from "react";
|
|
|
|
export interface DynamicBreadcrumbProps {
|
|
pathname: string;
|
|
}
|
|
|
|
export default function DynamicBreadcrumb({ pathname }: DynamicBreadcrumbProps) {
|
|
const segments = pathname.split("/").filter(Boolean);
|
|
|
|
const breadcrumbItems = segments.map((segment, index) => {
|
|
const href = "/" + segments.slice(0, index + 1).join("/");
|
|
const title = segment.charAt(0).toUpperCase() + segment.slice(1);
|
|
return { title, href };
|
|
});
|
|
|
|
return (
|
|
<Breadcrumb>
|
|
<BreadcrumbList>
|
|
{breadcrumbItems.map((item, index) => {
|
|
const isLast = index === breadcrumbItems.length - 1;
|
|
return (
|
|
<React.Fragment key={item.href}>
|
|
{isLast ? (
|
|
<BreadcrumbItem>
|
|
<BreadcrumbPage>{item.title}</BreadcrumbPage>
|
|
</BreadcrumbItem>
|
|
) : (
|
|
<BreadcrumbItem>
|
|
<BreadcrumbLink href={item.href}>{item.title}</BreadcrumbLink>
|
|
</BreadcrumbItem>
|
|
)}
|
|
{index < breadcrumbItems.length - 1 && <BreadcrumbSeparator />}
|
|
</React.Fragment>
|
|
);
|
|
})}
|
|
</BreadcrumbList>
|
|
</Breadcrumb>
|
|
);
|
|
}
|