refactor: ♻️ make breadcrumbs bulletproof

This commit is contained in:
Adrian Pilarczyk 2023-05-19 14:05:09 +02:00
parent 9d5636defc
commit dc2483b85a
2 changed files with 2009 additions and 3134 deletions

View file

@ -6,7 +6,7 @@ type Breadcrumb = {
href?: string; href?: string;
}; };
const newProviderBreadcrumbs = [ const newProviderBreadcrumbs: Breadcrumb[] = [
{ {
href: "/configuration", href: "/configuration",
label: "Configuration", label: "Configuration",
@ -15,9 +15,9 @@ const newProviderBreadcrumbs = [
label: "Add provider", label: "Add provider",
href: "/providers", href: "/providers",
}, },
] as Breadcrumb[]; ];
const breadcrumbsForRoute = { const breadcrumbsForRoute: Record<string, Breadcrumb[]> = {
"/configuration": [ "/configuration": [
{ {
href: "/configuration", href: "/configuration",
@ -39,12 +39,16 @@ const breadcrumbsForRoute = {
href: "/providers/avatax", href: "/providers/avatax",
}, },
], ],
} as Record<string, Breadcrumb[]>; };
const useBreadcrumbs = () => { const useBreadcrumbs = () => {
const router = useRouter(); const router = useRouter();
const breadcrumbs = breadcrumbsForRoute[router.pathname]; const breadcrumbs = breadcrumbsForRoute[router.pathname];
if (!breadcrumbs) {
throw new Error(`No breadcrumbs for route ${router.pathname}`);
}
return breadcrumbs; return breadcrumbs;
}; };
@ -53,7 +57,7 @@ export const AppBreadcrumbs = () => {
return ( return (
<Breadcrumbs> <Breadcrumbs>
{breadcrumbs?.map((breadcrumb) => ( {breadcrumbs.map((breadcrumb) => (
<Breadcrumbs.Item href={breadcrumb.href}>{breadcrumb.label}</Breadcrumbs.Item> <Breadcrumbs.Item href={breadcrumb.href}>{breadcrumb.label}</Breadcrumbs.Item>
))} ))}
</Breadcrumbs> </Breadcrumbs>

File diff suppressed because it is too large Load diff