mirror of
https://github.com/lensapp/lens.git
synced 2025-05-20 05:10:56 +00:00
Fix custom-resource navigation (#4831)
Signed-off-by: Sebastian Malton <sebastian@malton.name>
This commit is contained in:
parent
0745f9c063
commit
f53892cb46
@ -7,11 +7,9 @@ import { computed, IComputedValue } from "mobx";
|
|||||||
import type { CustomResourceDefinition } from "../../../common/k8s-api/endpoints";
|
import type { CustomResourceDefinition } from "../../../common/k8s-api/endpoints";
|
||||||
import { crdURL, crdDefinitionsRoute } from "../../../common/routes";
|
import { crdURL, crdDefinitionsRoute } from "../../../common/routes";
|
||||||
import type { TabLayoutRoute } from "../layout/tab-layout";
|
import type { TabLayoutRoute } from "../layout/tab-layout";
|
||||||
import { CrdList } from "./crd-list";
|
|
||||||
import { CrdResources } from "./crd-resources";
|
|
||||||
import groupedCustomResourceDefinitionsInjectable from "./grouped-custom-resources.injectable";
|
import groupedCustomResourceDefinitionsInjectable from "./grouped-custom-resources.injectable";
|
||||||
|
|
||||||
export interface CustomResourceTabLayoutRoute extends TabLayoutRoute {
|
export interface CustomResourceTabLayoutRoute extends Omit<TabLayoutRoute, "component"> {
|
||||||
id: string;
|
id: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -29,7 +27,6 @@ function getRouteTabs({ customResourcesDefinitions }: Dependencies) {
|
|||||||
{
|
{
|
||||||
id: "definitions",
|
id: "definitions",
|
||||||
title: "Definitions",
|
title: "Definitions",
|
||||||
component: CrdList,
|
|
||||||
url: crdURL(),
|
url: crdURL(),
|
||||||
routePath: String(crdDefinitionsRoute.path),
|
routePath: String(crdDefinitionsRoute.path),
|
||||||
exact: true,
|
exact: true,
|
||||||
@ -41,12 +38,10 @@ function getRouteTabs({ customResourcesDefinitions }: Dependencies) {
|
|||||||
id: `crd-group:${group}`,
|
id: `crd-group:${group}`,
|
||||||
title: group,
|
title: group,
|
||||||
routePath: crdURL({ query: { groups: group }}),
|
routePath: crdURL({ query: { groups: group }}),
|
||||||
component: CrdResources,
|
|
||||||
subRoutes: definitions.map(crd => ({
|
subRoutes: definitions.map(crd => ({
|
||||||
id: `crd-resource:${crd.getResourceApiBase()}`,
|
id: `crd-resource:${crd.getResourceApiBase()}`,
|
||||||
title: crd.getResourceKind(),
|
title: crd.getResourceKind(),
|
||||||
routePath: crd.getResourceUrl(),
|
routePath: crd.getResourceUrl(),
|
||||||
component: CrdResources,
|
|
||||||
})),
|
})),
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
@ -4,40 +4,18 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
import React from "react";
|
import React from "react";
|
||||||
import { observer } from "mobx-react";
|
|
||||||
import { Redirect, Route, Switch } from "react-router";
|
import { Redirect, Route, Switch } from "react-router";
|
||||||
import { TabLayout } from "../layout/tab-layout";
|
import { TabLayout } from "../layout/tab-layout";
|
||||||
import { crdURL } from "../../../common/routes";
|
import { crdDefinitionsRoute, crdResourcesRoute, crdURL } from "../../../common/routes";
|
||||||
import type { IComputedValue } from "mobx";
|
import { CrdList, CrdResources } from ".";
|
||||||
import type { CustomResourceGroupTabLayoutRoute } from "./route-tabs.injectable";
|
|
||||||
import { withInjectables } from "@ogre-tools/injectable-react";
|
|
||||||
import customResourcesRouteTabsInjectable from "./route-tabs.injectable";
|
|
||||||
|
|
||||||
interface Dependencies {
|
export const CustomResourcesRoute = () => (
|
||||||
routes: IComputedValue<CustomResourceGroupTabLayoutRoute[]>;
|
|
||||||
}
|
|
||||||
|
|
||||||
const NonInjectedCustomResourcesRoute = observer(({ routes }: Dependencies) => (
|
|
||||||
<TabLayout>
|
<TabLayout>
|
||||||
<Switch>
|
<Switch>
|
||||||
{
|
<Route component={CrdList} {...crdDefinitionsRoute} exact/>
|
||||||
routes.get().map(({ id, component, routePath, exact }) => (
|
<Route component={CrdResources} {...crdResourcesRoute}/>
|
||||||
<Route
|
|
||||||
key={id}
|
|
||||||
component={component}
|
|
||||||
path={routePath}
|
|
||||||
exact={exact}
|
|
||||||
/>
|
|
||||||
))
|
|
||||||
}
|
|
||||||
<Redirect to={crdURL()}/>
|
<Redirect to={crdURL()}/>
|
||||||
</Switch>
|
</Switch>
|
||||||
</TabLayout>
|
</TabLayout>
|
||||||
));
|
);
|
||||||
|
|
||||||
export const CustomResourcesRoute = withInjectables<Dependencies>(NonInjectedCustomResourcesRoute, {
|
|
||||||
getProps: (di, props) => ({
|
|
||||||
routes: di.inject(customResourcesRouteTabsInjectable),
|
|
||||||
...props,
|
|
||||||
}),
|
|
||||||
});
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user