'use client';
import Link from 'next/link';
import { usePathname } from 'next/navigation';
import { Fragment } from 'react';
import { BreadcrumbsSchema } from './BreadcrumbsSchema';
interface BreadcrumbItem {
label: string;
href: string;
current?: boolean;
}
function HomeIcon({ className }: { className?: string }) {
return (
);
}
function ChevronIcon({ className }: { className?: string }) {
return (
);
}
function formatSegmentLabel(segment: string): string {
const specialCases: { [key: string]: string } = {
blog: 'Blog',
tags: 'Tag-uri',
about: 'Despre',
};
if (specialCases[segment]) {
return specialCases[segment];
}
return segment
.split('-')
.map(word => word.charAt(0).toUpperCase() + word.slice(1))
.join(' ');
}
export function Breadcrumbs({ items }: { items?: BreadcrumbItem[] }) {
const pathname = usePathname();
let breadcrumbs: BreadcrumbItem[] = items || [];
if (!items) {
const segments = pathname.split('/').filter(Boolean);
breadcrumbs = segments.map((segment, index) => {
const href = '/' + segments.slice(0, index + 1).join('/');
const label = formatSegmentLabel(segment);
const current = index === segments.length - 1;
return { label, href, current };
});
}
if (pathname === '/') {
return null;
}
const schemaItems = [
{ position: 1, name: 'Acasă', item: '/' },
...breadcrumbs.map((item, index) => ({
position: index + 2,
name: item.label,
item: item.href,
})),
];
return (
<>
>
);
}