Fix breadcrumb route nesting
Signed-off-by: Émile Ré <nemile.re@gmail.com>
This commit is contained in:
@@ -24,11 +24,7 @@ import { ConsoleLayoutBreadcrumbControlOverviewQuery } from "./__generated__/Con
|
|||||||
import { ConsoleLayoutOrganizationQuery } from "./__generated__/ConsoleLayoutOrganizationQuery.graphql";
|
import { ConsoleLayoutOrganizationQuery } from "./__generated__/ConsoleLayoutOrganizationQuery.graphql";
|
||||||
import { ConsoleLayoutBreadcrumbPolicyOverviewQuery } from "./__generated__/ConsoleLayoutBreadcrumbPolicyOverviewQuery.graphql";
|
import { ConsoleLayoutBreadcrumbPolicyOverviewQuery } from "./__generated__/ConsoleLayoutBreadcrumbPolicyOverviewQuery.graphql";
|
||||||
|
|
||||||
function BreadcrumbHome({ children }: { children: React.ReactNode }) {
|
function BreadcrumbHome() {
|
||||||
const { organizationId } = useParams();
|
|
||||||
|
|
||||||
// If there's no organizationId, we're on the create organization page
|
|
||||||
if (!organizationId) {
|
|
||||||
return (
|
return (
|
||||||
<Breadcrumb>
|
<Breadcrumb>
|
||||||
<BreadcrumbList>
|
<BreadcrumbList>
|
||||||
@@ -37,14 +33,14 @@ function BreadcrumbHome({ children }: { children: React.ReactNode }) {
|
|||||||
<Link to="/">Home</Link>
|
<Link to="/">Home</Link>
|
||||||
</BreadcrumbLink>
|
</BreadcrumbLink>
|
||||||
</BreadcrumbItem>
|
</BreadcrumbItem>
|
||||||
<BreadcrumbSeparator />
|
<Outlet />
|
||||||
<BreadcrumbItem>
|
|
||||||
<BreadcrumbPage>Create Organization</BreadcrumbPage>
|
|
||||||
</BreadcrumbItem>
|
|
||||||
</BreadcrumbList>
|
</BreadcrumbList>
|
||||||
</Breadcrumb>
|
</Breadcrumb>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function BreadCrumbOrganization() {
|
||||||
|
const { organizationId } = useParams();
|
||||||
|
|
||||||
const data = useLazyLoadQuery<ConsoleLayoutOrganizationQuery>(
|
const data = useLazyLoadQuery<ConsoleLayoutOrganizationQuery>(
|
||||||
graphql`
|
graphql`
|
||||||
@@ -70,7 +66,7 @@ function BreadcrumbHome({ children }: { children: React.ReactNode }) {
|
|||||||
</Link>
|
</Link>
|
||||||
</BreadcrumbLink>
|
</BreadcrumbLink>
|
||||||
</BreadcrumbItem>
|
</BreadcrumbItem>
|
||||||
{children}
|
<Outlet />
|
||||||
</BreadcrumbList>
|
</BreadcrumbList>
|
||||||
</Breadcrumb>
|
</Breadcrumb>
|
||||||
);
|
);
|
||||||
@@ -370,9 +366,6 @@ function BreadcrumbUpdatePolicy() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export default function ConsoleLayout() {
|
export default function ConsoleLayout() {
|
||||||
const { organizationId } = useParams();
|
|
||||||
const showBreadcrumb = !!organizationId;
|
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<SidebarProvider>
|
<SidebarProvider>
|
||||||
<AppSidebar />
|
<AppSidebar />
|
||||||
@@ -381,11 +374,16 @@ export default function ConsoleLayout() {
|
|||||||
<div className="flex items-center gap-2 px-4">
|
<div className="flex items-center gap-2 px-4">
|
||||||
<SidebarTrigger className="-ml-1" />
|
<SidebarTrigger className="-ml-1" />
|
||||||
<Separator orientation="vertical" className="mr-2 h-4" />
|
<Separator orientation="vertical" className="mr-2 h-4" />
|
||||||
<Suspense>
|
|
||||||
<BreadcrumbHome>
|
|
||||||
{showBreadcrumb && (
|
|
||||||
<Routes>
|
<Routes>
|
||||||
<Route path="organizations/:organizationsId">
|
<Route path="organizations">
|
||||||
|
<Route
|
||||||
|
path=":organizationsId"
|
||||||
|
element={
|
||||||
|
<Suspense>
|
||||||
|
<BreadCrumbOrganization />
|
||||||
|
</Suspense>
|
||||||
|
}
|
||||||
|
>
|
||||||
<Route
|
<Route
|
||||||
path="frameworks"
|
path="frameworks"
|
||||||
element={<BreadcrumbFrameworkList />}
|
element={<BreadcrumbFrameworkList />}
|
||||||
@@ -429,10 +427,7 @@ export default function ConsoleLayout() {
|
|||||||
</Suspense>
|
</Suspense>
|
||||||
}
|
}
|
||||||
/>
|
/>
|
||||||
<Route
|
<Route path="create" element={<BreadcrumbCreatePeople />} />
|
||||||
path="create"
|
|
||||||
element={<BreadcrumbCreatePeople />}
|
|
||||||
/>
|
|
||||||
</Route>
|
</Route>
|
||||||
<Route path="vendors" element={<BreadcrumbVendorList />}>
|
<Route path="vendors" element={<BreadcrumbVendorList />}>
|
||||||
<Route
|
<Route
|
||||||
@@ -458,16 +453,24 @@ export default function ConsoleLayout() {
|
|||||||
element={<BreadcrumbUpdatePolicy />}
|
element={<BreadcrumbUpdatePolicy />}
|
||||||
/>
|
/>
|
||||||
</Route>
|
</Route>
|
||||||
|
<Route path="create" element={<BreadcrumbCreatePolicy />} />
|
||||||
|
</Route>
|
||||||
|
</Route>
|
||||||
|
<Route path="*" element={<BreadcrumbHome />}>
|
||||||
<Route
|
<Route
|
||||||
path="create"
|
path="create"
|
||||||
element={<BreadcrumbCreatePolicy />}
|
element={
|
||||||
|
<>
|
||||||
|
<BreadcrumbSeparator />
|
||||||
|
<BreadcrumbItem>
|
||||||
|
<BreadcrumbPage>Create Organization</BreadcrumbPage>
|
||||||
|
</BreadcrumbItem>
|
||||||
|
</>
|
||||||
|
}
|
||||||
/>
|
/>
|
||||||
</Route>
|
</Route>
|
||||||
</Route>
|
</Route>
|
||||||
</Routes>
|
</Routes>
|
||||||
)}
|
|
||||||
</BreadcrumbHome>
|
|
||||||
</Suspense>
|
|
||||||
</div>
|
</div>
|
||||||
</header>
|
</header>
|
||||||
<div className="flex flex-1 flex-col gap-4 p-4 pt-0">
|
<div className="flex flex-1 flex-col gap-4 p-4 pt-0">
|
||||||
|
|||||||
Reference in New Issue
Block a user