mirror of
https://github.com/lensapp/lens.git
synced 2025-05-20 05:10:56 +00:00
Full dependency inversion of <Dock> and all current tab kinds (#4757)
Co-authored-by: Mikko Aspiala <mikko.aspiala@gmail.com> Co-authored-by: Sebastian Malton <sebastian@malton.name> Co-authored-by: Janne Savolainen <janne.savolainen@live.fi>
This commit is contained in:
152 files changed
+3423
-2617
No files matched your search
@@ -17,8 +17,7 @@ import { getDiForUnitTesting } from "../../getDiForUnitTesting";
|
||||
|
||||
import clusterInjectable from "./dependencies/cluster.injectable";
|
||||
import hideDetailsInjectable from "./dependencies/hide-details.injectable";
|
||||
import editResourceTabInjectable from "../dock/edit-resource-tab/edit-resource-tab.injectable";
|
||||
import { TabKind } from "../dock/dock-store/dock.store";
|
||||
import createEditResourceTabInjectable from "../dock/edit-resource/edit-resource-tab.injectable";
|
||||
import kubeObjectMenuRegistryInjectable from "./dependencies/kube-object-menu-items/kube-object-menu-registry.injectable";
|
||||
import { DiRender, renderFor } from "../test-utils/renderFor";
|
||||
import type { Cluster } from "../../../common/cluster/cluster";
|
||||
@@ -54,12 +53,7 @@ describe("kube-object-menu", () => {
|
||||
|
||||
di.override(hideDetailsInjectable, () => () => {});
|
||||
|
||||
di.override(editResourceTabInjectable, () => () => ({
|
||||
id: "irrelevant",
|
||||
kind: TabKind.TERMINAL,
|
||||
pinned: false,
|
||||
title: "irrelevant",
|
||||
}));
|
||||
di.override(createEditResourceTabInjectable, () => () => "irrelevant");
|
||||
|
||||
addDynamicMenuItem({
|
||||
di,
|
||||
|
||||
@@ -11,7 +11,7 @@ import identity from "lodash/identity";
|
||||
import type { ApiManager } from "../../../common/k8s-api/api-manager";
|
||||
import { withInjectables } from "@ogre-tools/injectable-react";
|
||||
import clusterNameInjectable from "./dependencies/cluster-name.injectable";
|
||||
import editResourceTabInjectable from "../dock/edit-resource-tab/edit-resource-tab.injectable";
|
||||
import createEditResourceTabInjectable from "../dock/edit-resource/edit-resource-tab.injectable";
|
||||
import hideDetailsInjectable from "./dependencies/hide-details.injectable";
|
||||
import kubeObjectMenuItemsInjectable from "./dependencies/kube-object-menu-items/kube-object-menu-items.injectable";
|
||||
import apiManagerInjectable from "./dependencies/api-manager.injectable";
|
||||
@@ -27,7 +27,7 @@ interface Dependencies {
|
||||
kubeObjectMenuItems: React.ElementType[];
|
||||
clusterName: string;
|
||||
hideDetails: () => void;
|
||||
editResourceTab: (kubeObject: KubeObject) => void;
|
||||
createEditResourceTab: (kubeObject: KubeObject) => void;
|
||||
}
|
||||
|
||||
class NonInjectedKubeObjectMenu<TKubeObject extends KubeObject> extends React.Component<KubeObjectMenuProps<TKubeObject> & Dependencies> {
|
||||
@@ -51,7 +51,7 @@ class NonInjectedKubeObjectMenu<TKubeObject extends KubeObject> extends React.Co
|
||||
@boundMethod
|
||||
async update() {
|
||||
this.props.hideDetails();
|
||||
this.props.editResourceTab(this.props.object);
|
||||
this.props.createEditResourceTab(this.props.object);
|
||||
}
|
||||
|
||||
@boundMethod
|
||||
@@ -117,7 +117,7 @@ export function KubeObjectMenu<T extends KubeObject>(
|
||||
getProps: (di, props) => ({
|
||||
clusterName: di.inject(clusterNameInjectable),
|
||||
apiManager: di.inject(apiManagerInjectable),
|
||||
editResourceTab: di.inject(editResourceTabInjectable),
|
||||
createEditResourceTab: di.inject(createEditResourceTabInjectable),
|
||||
hideDetails: di.inject(hideDetailsInjectable),
|
||||
|
||||
kubeObjectMenuItems: di.inject(kubeObjectMenuItemsInjectable, {
|
||||
|
||||
Reference in new issue
Block a user