1
0
mirror of https://github.com/lensapp/lens.git synced 2025-05-20 05:10:56 +00:00
lens/src/renderer/components/dock/terminal/get-terminal-api.injectable.ts
Sebastian Malton 595fb90a2a Full dependency inversion of <Dock> and all current tab kinds
- Fixes pod logs not working on initial load

- Removes DockStore as a dependency of all *TabStore

- Removes all the reactions about loading new data from the stores

- Removes dependencies on selectedTabId from all *TabStore's

Signed-off-by: Sebastian Malton <sebastian@malton.name>
2022-01-31 09:09:56 -05:00

28 lines
909 B
TypeScript

/**
* Copyright (c) OpenLens Authors. All rights reserved.
* Licensed under MIT License. See LICENSE in root directory for more information.
*/
import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable";
import type { TerminalApi } from "../../../api/terminal-api";
import { bind } from "../../../utils";
import type { TabId } from "../dock/store";
import type { TerminalStore } from "./store";
import terminalStoreInjectable from "./store.injectable";
interface Dependencies {
terminalStore: TerminalStore;
}
function getTerminalApi({ terminalStore }: Dependencies, tabId: TabId): TerminalApi {
return terminalStore.getTerminalApi(tabId);
}
const getTerminalApiInjectable = getInjectable({
instantiate: (di) => bind(getTerminalApi, null, {
terminalStore: di.inject(terminalStoreInjectable),
}),
lifecycle: lifecycleEnum.singleton,
});
export default getTerminalApiInjectable;