Files

70 lines
1.8 KiB
TypeScript

'use client';
import { usePathname } from 'next/navigation';
import {
Breadcrumb,
BreadcrumbList,
BreadcrumbItem,
BreadcrumbLink,
BreadcrumbPage,
BreadcrumbSeparator,
} from '@/components/ui/breadcrumb';
const routeLabels: Record<string, string> = {
'': 'Home',
rounds: 'Rounds',
company: 'Companies',
'mocked-cap': 'Mocked Cap Table Page',
settings: 'Settings',
};
export function BreadcrumbNav() {
const pathname = usePathname();
// Split pathname into segments and filter out empty strings
const segments = pathname.split('/').filter(Boolean);
// If we're on the home page, show just "Home"
if (segments.length === 0) {
return (
<Breadcrumb>
<BreadcrumbList>
<BreadcrumbItem>
<BreadcrumbPage>Home</BreadcrumbPage>
</BreadcrumbItem>
</BreadcrumbList>
</Breadcrumb>
);
}
return (
<Breadcrumb>
<BreadcrumbList>
{/* Always show Home as the first breadcrumb */}
<BreadcrumbItem>
<BreadcrumbLink href="/">Home</BreadcrumbLink>
</BreadcrumbItem>
{segments.map((segment, index) => {
const isLast = index === segments.length - 1;
const href = '/' + segments.slice(0, index + 1).join('/');
const label = routeLabels[segment] || segment;
return (
<div key={segment + index} className="flex items-center">
<BreadcrumbSeparator />
<BreadcrumbItem>
{isLast ? (
<BreadcrumbPage>{label}</BreadcrumbPage>
) : (
<BreadcrumbLink href={href}>{label}</BreadcrumbLink>
)}
</BreadcrumbItem>
</div>
);
})}
</BreadcrumbList>
</Breadcrumb>
);
}