mirror of
https://github.com/lensapp/lens.git
synced 2025-05-20 05:10:56 +00:00
Inline implementation of injectable for being simple enough
Signed-off-by: Janne Savolainen <janne.savolainen@live.fi>
This commit is contained in:
parent
4212b409dd
commit
871bf18727
@ -6,19 +6,23 @@ import { getInjectable } from "@ogre-tools/injectable";
|
|||||||
import editResourceTabStoreInjectable from "./store.injectable";
|
import editResourceTabStoreInjectable from "./store.injectable";
|
||||||
import dockStoreInjectable from "../dock/store.injectable";
|
import dockStoreInjectable from "../dock/store.injectable";
|
||||||
import type { KubeObject } from "../../../../common/k8s-api/kube-object";
|
import type { KubeObject } from "../../../../common/k8s-api/kube-object";
|
||||||
import type { DockStore, DockTabCreateSpecific, TabId } from "../dock/store";
|
import type { DockTabCreateSpecific, TabId } from "../dock/store";
|
||||||
import { TabKind } from "../dock/store";
|
import { TabKind } from "../dock/store";
|
||||||
import type { EditResourceTabStore } from "./store";
|
|
||||||
import { runInAction } from "mobx";
|
import { runInAction } from "mobx";
|
||||||
import getRandomIdForEditResourceTabInjectable from "./get-random-id-for-edit-resource-tab.injectable";
|
import getRandomIdForEditResourceTabInjectable from "./get-random-id-for-edit-resource-tab.injectable";
|
||||||
|
|
||||||
interface Dependencies {
|
const createEditResourceTabInjectable = getInjectable({
|
||||||
dockStore: DockStore;
|
id: "create-edit-resource-tab",
|
||||||
editResourceStore: EditResourceTabStore;
|
|
||||||
getRandomId: () => string;
|
|
||||||
}
|
|
||||||
|
|
||||||
const createEditResourceTab = ({ dockStore, editResourceStore, getRandomId }: Dependencies) => (object: KubeObject, tabParams: DockTabCreateSpecific = {}): TabId => {
|
instantiate: (di) => {
|
||||||
|
const dockStore = di.inject(dockStoreInjectable);
|
||||||
|
const editResourceStore = di.inject(editResourceTabStoreInjectable);
|
||||||
|
const getRandomId = di.inject(getRandomIdForEditResourceTabInjectable);
|
||||||
|
|
||||||
|
return (
|
||||||
|
object: KubeObject,
|
||||||
|
tabParams: DockTabCreateSpecific = {},
|
||||||
|
): TabId => {
|
||||||
// use existing tab if already opened
|
// use existing tab if already opened
|
||||||
const tabId = editResourceStore.getTabIdByResource(object);
|
const tabId = editResourceStore.getTabIdByResource(object);
|
||||||
|
|
||||||
@ -47,15 +51,7 @@ const createEditResourceTab = ({ dockStore, editResourceStore, getRandomId }: De
|
|||||||
return tab.id;
|
return tab.id;
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
},
|
||||||
const createEditResourceTabInjectable = getInjectable({
|
|
||||||
id: "create-edit-resource-tab",
|
|
||||||
|
|
||||||
instantiate: (di) => createEditResourceTab({
|
|
||||||
dockStore: di.inject(dockStoreInjectable),
|
|
||||||
editResourceStore: di.inject(editResourceTabStoreInjectable),
|
|
||||||
getRandomId: di.inject(getRandomIdForEditResourceTabInjectable),
|
|
||||||
}),
|
|
||||||
});
|
});
|
||||||
|
|
||||||
export default createEditResourceTabInjectable;
|
export default createEditResourceTabInjectable;
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user