"use client";
import { createContext, use, useEffect, useState } from "react";
type BreadCrumbItem = {
label: string;
href?: string;
};
const BreadcrumbContext = createContext<{
breadcrumbs: BreadCrumbItem[];
setBreadcrumbs: (breadcrumbs: BreadCrumbItem[]) => void;
}>({
breadcrumbs: [],
setBreadcrumbs: () => {},
});
export function BreadcrumbProvider({
children,
}: {
children: React.ReactNode;
}) {
const [breadcrumbs, setBreadcrumbs] = useState<BreadCrumbItem[]>([]);
return (
<BreadcrumbContext value={{ breadcrumbs, setBreadcrumbs }}>
{children}
</BreadcrumbContext>
);
}
export function BreadcrumbConfig({ items }: { items: BreadCrumbItem[] }) {
const { setBreadcrumbs } = use(BreadcrumbContext);
useEffect(() => {
setBreadcrumbs(items);
return () => {
setBreadcrumbs([]);
};
}, []);
return null;
}
export const useBreadcrumbs = () => {
return use(BreadcrumbContext);
};