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

@@ -0,0 +1,49 @@
/**
* Copyright (c) OpenLens Authors. All rights reserved.
* Licensed under MIT License. See LICENSE in root directory for more information.
*/
import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable";
import { asyncComputed } from "@ogre-tools/injectable-react";
import type { LensRendererExtension } from "../../extensions/lens-renderer-extension";
import type { KubernetesCluster } from "../../common/catalog-entities";
import extensionIsEnabledForClusterInjectable from "../../extensions/extension-loader/extension-is-enabled-for-cluster.injectable";
import activeKubernetesClusterInjectable from "../cluster-frame-context/active-kubernetes-cluster.injectable";
import { untracked } from "mobx";
const extensionShouldBeEnabledForClusterFrameInjectable = getInjectable({
id: "extension-should-be-enabled-for-cluster-frame",
instantiate: (di, extension: LensRendererExtension) => {
const activeKubernetesCluster = di.inject(activeKubernetesClusterInjectable);
const getExtensionIsEnabledForCluster = (
extension: LensRendererExtension,
cluster: KubernetesCluster,
) =>
untracked(() => di.inject(extensionIsEnabledForClusterInjectable, { extension, cluster }));
return asyncComputed(
async () => {
const cluster = activeKubernetesCluster.get();
if (!cluster) {
return false;
}
return getExtensionIsEnabledForCluster(
extension,
cluster,
);
},
false,
);
},
lifecycle: lifecycleEnum.keyedSingleton({
getInstanceKey: (di, extension: LensRendererExtension) =>
extension.sanitizedExtensionId,
}),
});
export default extensionShouldBeEnabledForClusterFrameInjectable;