1
0
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:
Janne Savolainen 2022-07-27 09:07:18 +03:00
parent 4212b409dd
commit 871bf18727
No known key found for this signature in database
GPG Key ID: 8C6CFB2FFFE8F68A

View File

@ -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;