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:
authored and GitHub committed 2022-01-31 09:49:36 -05:00
1 parent 65669f6a64
commit 0ce4e3d793
152 files changed
+3423 -2617

No files matched your search

@@ -0,0 +1,31 @@
/**
* 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 { IPodContainer, Pod } from "../../../../common/k8s-api/endpoints";
import type { TabId } from "../dock/store";
import createLogsTabInjectable from "./create-logs-tab.injectable";
export interface PodLogsTabData {
selectedPod: Pod;
selectedContainer: IPodContainer;
}
const createPodLogsTabInjectable = getInjectable({
instantiate: (di) => {
const createLogsTab = di.inject(createLogsTabInjectable);
return ({ selectedPod, selectedContainer }: PodLogsTabData): TabId =>
createLogsTab(`Pod ${selectedPod.getName()}`, {
owner: selectedPod.getOwnerRefs()[0],
namespace: selectedPod.getNs(),
selectedContainer: selectedContainer.name,
selectedPodId: selectedPod.getId(),
});
},
lifecycle: lifecycleEnum.singleton,
});
export default createPodLogsTabInjectable;