Introduce kludge to make "isEnabledForCluster" work again for cluster pages PART 1 (#5800)

* Kludge "isEnabledForCluster" work again for cluster pages

Signed-off-by: Janne Savolainen <janne.savolainen@live.fi>

* Introduce kludge to make "isEnabledForCluster" work again for cluster page menus  PART 2 (#5801)

* Kludge "isEnabledForCluster" work again for cluster page menus (sidebar items)

Signed-off-by: Janne Savolainen <janne.savolainen@live.fi>

* Introduce kludge to make "isEnabledForCluster" work again for kube object status texts PART 3 (#5802)

* Kludge "isEnabledForCluster" work again for kube object status texts

Signed-off-by: Janne Savolainen <janne.savolainen@live.fi>

* Kludge "isEnabledForCluster" work again for kube object menu items (#5803)

Signed-off-by: Janne Savolainen <janne.savolainen@live.fi>

* Introduce kludge to make "isEnabledForCluster" work again for workload overview details PART 5 (#5804)

* Kludge "isEnabledForCluster" work again for cluster page menus (sidebar items)

Signed-off-by: Janne Savolainen <janne.savolainen@live.fi>

* Kludge "isEnabledForCluster" work again for kube object status texts

Signed-off-by: Janne Savolainen <janne.savolainen@live.fi>

* Kludge "isEnabledForCluster" work again for kube object menu items

Signed-off-by: Janne Savolainen <janne.savolainen@live.fi>

* Kludge "isEnabledForCluster" work again for workload overview details

Signed-off-by: Janne Savolainen <janne.savolainen@live.fi>

* Kludge "isEnabledForCluster" work again for kube object details (#5805)

Signed-off-by: Janne Savolainen <janne.savolainen@live.fi>
This commit is contained in:
Janne Savolainen authored and GitHub committed 2022-07-13 08:36:51 +03:00
1 parent 27cb7d1ca9
commit ca40c51117
96 files changed
+11371 -904

No files matched your search

@@ -14,9 +14,11 @@ import { extensionRegistratorInjectionToken } from "../../extensions/extension-l
import { SiblingsInTabLayout } from "../components/layout/siblings-in-tab-layout";
import extensionPageParametersInjectable from "./extension-page-parameters.injectable";
import { routeSpecificComponentInjectionToken } from "./route-specific-component-injection-token";
import type { IComputedValue } from "mobx";
import { computed } from "mobx";
import { frontEndRouteInjectionToken } from "../../common/front-end-routing/front-end-route-injection-token";
import { getExtensionRoutePath } from "./for-extension";
import extensionShouldBeEnabledForClusterFrameInjectable from "../extension-loader/extension-should-be-enabled-for-cluster-frame.injectable";
const extensionRouteRegistratorInjectable = getInjectable({
id: "extension-route-registrator",
@@ -24,14 +26,27 @@ const extensionRouteRegistratorInjectable = getInjectable({
instantiate: (di) => {
return (ext) => {
const extension = ext as LensRendererExtension;
const toRouteInjectable = toRouteInjectableFor(
di,
const toRouteInjectable = toRouteInjectableFor(di, extension);
const extensionShouldBeEnabledForClusterFrame = di.inject(
extensionShouldBeEnabledForClusterFrameInjectable,
extension,
);
return [
...extension.globalPages.map(toRouteInjectable(false)),
...extension.clusterPages.map(toRouteInjectable(true)),
...extension.globalPages.map(
toRouteInjectable(
false,
computed(() => true),
),
),
...extension.clusterPages.map(
toRouteInjectable(
true,
computed(() => extensionShouldBeEnabledForClusterFrame.value.get()),
),
),
].flat();
};
},
@@ -46,7 +61,7 @@ const toRouteInjectableFor =
di: DiContainerForInjection,
extension: LensRendererExtension,
) =>
(clusterFrame: boolean) =>
(clusterFrame: boolean, isEnabled: IComputedValue<boolean>) =>
(registration: PageRegistration) => {
const routeInjectable = getInjectable({
id: `route-${registration.id}-for-extension-${extension.sanitizedExtensionId}`,
@@ -54,7 +69,7 @@ const toRouteInjectableFor =
instantiate: () => ({
path: getExtensionRoutePath(extension, registration.id),
clusterFrame,
isEnabled: computed(() => true),
isEnabled,
extension,
}),