From 871bf18727dcec72fde90548a6aaf089fe89f3fd Mon Sep 17 00:00:00 2001 From: Janne Savolainen Date: Wed, 27 Jul 2022 09:07:18 +0300 Subject: [PATCH] Inline implementation of injectable for being simple enough Signed-off-by: Janne Savolainen --- .../edit-resource-tab.injectable.ts | 82 +++++++++---------- 1 file changed, 39 insertions(+), 43 deletions(-) diff --git a/src/renderer/components/dock/edit-resource/edit-resource-tab.injectable.ts b/src/renderer/components/dock/edit-resource/edit-resource-tab.injectable.ts index f8f11b824a..c3eb15f0f9 100644 --- a/src/renderer/components/dock/edit-resource/edit-resource-tab.injectable.ts +++ b/src/renderer/components/dock/edit-resource/edit-resource-tab.injectable.ts @@ -6,56 +6,52 @@ import { getInjectable } from "@ogre-tools/injectable"; import editResourceTabStoreInjectable from "./store.injectable"; import dockStoreInjectable from "../dock/store.injectable"; 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 type { EditResourceTabStore } from "./store"; import { runInAction } from "mobx"; import getRandomIdForEditResourceTabInjectable from "./get-random-id-for-edit-resource-tab.injectable"; -interface Dependencies { - dockStore: DockStore; - editResourceStore: EditResourceTabStore; - getRandomId: () => string; -} - -const createEditResourceTab = ({ dockStore, editResourceStore, getRandomId }: Dependencies) => (object: KubeObject, tabParams: DockTabCreateSpecific = {}): TabId => { - // use existing tab if already opened - const tabId = editResourceStore.getTabIdByResource(object); - - if (tabId) { - dockStore.open(); - dockStore.selectTab(tabId); - - return tabId; - } - - return runInAction(() => { - const tab = dockStore.createTab( - { - id: getRandomId(), - title: `${object.kind}: ${object.getName()}`, - ...tabParams, - kind: TabKind.EDIT_RESOURCE, - }, - false, - ); - - editResourceStore.setData(tab.id, { - resource: object.selfLink, - }); - - 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), - }), + 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 + const tabId = editResourceStore.getTabIdByResource(object); + + if (tabId) { + dockStore.open(); + dockStore.selectTab(tabId); + + return tabId; + } + + return runInAction(() => { + const tab = dockStore.createTab( + { + id: getRandomId(), + title: `${object.kind}: ${object.getName()}`, + ...tabParams, + kind: TabKind.EDIT_RESOURCE, + }, + false, + ); + + editResourceStore.setData(tab.id, { + resource: object.selfLink, + }); + + return tab.id; + }); + }; + }, }); export default createEditResourceTabInjectable;