mirror of
https://github.com/lensapp/lens.git
synced 2025-05-20 05:10:56 +00:00
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:
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;
|
||||
Reference in new issue
Block a user