diff --git a/src/renderer/components/kube-object-menu/inject-naive/inject-naive.tsx b/src/renderer/components/kube-object-menu/inject-naive/inject-naive.tsx
index 29082bd729..c6ec0184ae 100644
--- a/src/renderer/components/kube-object-menu/inject-naive/inject-naive.tsx
+++ b/src/renderer/components/kube-object-menu/inject-naive/inject-naive.tsx
@@ -36,12 +36,18 @@ export const InjectNaive = ({ Component, ...props }: Props) => {
const kubeObjectMenuRegistry = KubeObjectMenuRegistry.getInstance();
const cluster = getActiveClusterEntity();
+ const dependencies = {
+ editResourceTab,
+ hideDetails,
+ apiManager,
+ kubeObjectMenuRegistry,
+ cluster,
+ };
+
return (
);
+ dependencies={dependencies}
+ {...props}
+ />
+ );
};
diff --git a/src/renderer/components/kube-object-menu/kube-object-menu.test.tsx b/src/renderer/components/kube-object-menu/kube-object-menu.test.tsx
index e511e96f7f..aa347e9aa3 100644
--- a/src/renderer/components/kube-object-menu/kube-object-menu.test.tsx
+++ b/src/renderer/components/kube-object-menu/kube-object-menu.test.tsx
@@ -22,7 +22,7 @@
import React from "react";
import { render } from "@testing-library/react";
import "@testing-library/jest-dom/extend-expect";
-import { KubeObjectMenu } from "./kube-object-menu";
+import { KubeObjectMenu, KubeObjectMenuDependencies } from "./kube-object-menu";
import { KubeObject } from "../../../common/k8s-api/kube-object";
import userEvent from "@testing-library/user-event";
import type { KubeApi } from "../../../common/k8s-api/kube-api";
@@ -43,6 +43,7 @@ describe("kube-object-menu", () => {
let clusterStub: IHasName;
let kubeObjectMenuRegistryStub: IHasGettableItemsForKind;
let objectStub: KubeObject | null;
+ let dependencies: KubeObjectMenuDependencies;
beforeEach(() => {
// TODO: Remove illegal global overwrites for what should be a dependency somewhere.
@@ -56,9 +57,8 @@ describe("kube-object-menu", () => {
window.cancelIdleCallback = () => {};
apiManagerStub = {
- // eslint-disable-next-line unused-imports/no-unused-vars-ts
-
getStore: >(
+ // eslint-disable-next-line unused-imports/no-unused-vars-ts
api: string | KubeApi,
): TKubeObjectStore | undefined => undefined,
};
@@ -83,6 +83,14 @@ describe("kube-object-menu", () => {
hideDetailsStub = () => {};
editResourceTabStub = () => {};
+
+ dependencies = {
+ apiManager: apiManagerStub,
+ cluster: clusterStub,
+ kubeObjectMenuRegistry: kubeObjectMenuRegistryStub,
+ hideDetails: hideDetailsStub,
+ editResourceTab: editResourceTabStub,
+ };
});
it("given no kube object, renders", () => {
@@ -91,12 +99,8 @@ describe("kube-object-menu", () => {
const { baseElement } = render(
,
);
@@ -128,11 +132,7 @@ describe("kube-object-menu", () => {
diff --git a/src/renderer/components/kube-object-menu/kube-object-menu.tsx b/src/renderer/components/kube-object-menu/kube-object-menu.tsx
index 9c02f0830a..a4f0d23269 100644
--- a/src/renderer/components/kube-object-menu/kube-object-menu.tsx
+++ b/src/renderer/components/kube-object-menu/kube-object-menu.tsx
@@ -29,15 +29,7 @@ import type { IHasGettableItemsForKind } from "../../../extensions/registries";
import type { IGettableStore } from "../../../common/k8s-api/api-manager";
import type { IHasName } from "../../../main/cluster";
-export interface KubeObjectMenuProps extends MenuActionsProps {
- object: TKubeObject | null | undefined;
- editable?: boolean;
- removable?: boolean;
- toolbar?: boolean;
-}
-
-interface KubeObjectMenuDependencies
- extends KubeObjectMenuProps {
+export interface KubeObjectMenuDependencies{
apiManager: IGettableStore;
kubeObjectMenuRegistry: IHasGettableItemsForKind;
cluster: IHasName;
@@ -45,25 +37,19 @@ interface KubeObjectMenuDependencies
editResourceTab: (kubeObject: TKubeObject) => void;
}
+export interface KubeObjectMenuProps extends MenuActionsProps {
+ object: TKubeObject | null | undefined;
+ editable?: boolean;
+ removable?: boolean;
+ toolbar?: boolean;
+ dependencies?: KubeObjectMenuDependencies
+}
+
export class KubeObjectMenu<
TKubeObject extends KubeObject,
-> extends React.Component> {
+> extends React.Component> {
get dependencies() {
- const {
- apiManager,
- hideDetails,
- editResourceTab,
- cluster,
- kubeObjectMenuRegistry,
- } = this.props;
-
- return {
- apiManager,
- editResourceTab,
- hideDetails,
- kubeObjectMenuRegistry,
- cluster,
- };
+ return this.props.dependencies;
}
get store() {