diff --git a/src/extensions/renderer-api/components.ts b/src/extensions/renderer-api/components.ts index 83188c7d39..28b21bec49 100644 --- a/src/extensions/renderer-api/components.ts +++ b/src/extensions/renderer-api/components.ts @@ -14,12 +14,12 @@ import createWorkloadLogsTabInjectable from "../../renderer/components/dock/logs import sendCommandInjectable from "../../renderer/components/dock/terminal/send-command.injectable"; import renameTabInjectable from "../../renderer/components/dock/dock/rename-tab.injectable"; import { asLegacyGlobalObjectForExtensionApiWithModifications } from "../as-legacy-globals-for-extension-api/as-legacy-global-object-for-extension-api-with-modifications"; -import { podStore } from "../../renderer/components/+workloads-pods/legacy-store"; import { ConfirmDialog as _ConfirmDialog } from "../../renderer/components/confirm-dialog"; import type { ConfirmDialogBooleanParams, ConfirmDialogParams, ConfirmDialogProps } from "../../renderer/components/confirm-dialog"; import openConfirmDialogInjectable from "../../renderer/components/confirm-dialog/open.injectable"; import confirmInjectable from "../../renderer/components/confirm-dialog/confirm.injectable"; import notificationsStoreInjectable from "../../renderer/components/notifications/notifications-store.injectable"; +import podStoreInjectable from "../../renderer/components/+workloads-pods/store.injectable"; // layouts export * from "../../renderer/components/layout/main-layout"; @@ -103,6 +103,7 @@ export const terminalStore = asLegacyGlobalObjectForExtensionApiWithModification ); const renameTab = asLegacyGlobalFunctionForExtensionApi(renameTabInjectable); +const podStore = asLegacyGlobalForExtensionApi(podStoreInjectable); export const logTabStore = asLegacyGlobalObjectForExtensionApiWithModifications( logTabStoreInjectable, diff --git a/src/renderer/components/+workloads-pods/legacy-store.ts b/src/renderer/components/+workloads-pods/legacy-store.ts deleted file mode 100644 index e05d8fcffd..0000000000 --- a/src/renderer/components/+workloads-pods/legacy-store.ts +++ /dev/null @@ -1,12 +0,0 @@ -/** - * Copyright (c) OpenLens Authors. All rights reserved. - * Licensed under MIT License. See LICENSE in root directory for more information. - */ - -import { asLegacyGlobalForExtensionApi } from "../../../extensions/as-legacy-globals-for-extension-api/as-legacy-global-object-for-extension-api"; -import podStoreInjectable from "./store.injectable"; - -/** - * @deprecated use `di.inject(podStoreInjectable)` instead - */ -export const podStore = asLegacyGlobalForExtensionApi(podStoreInjectable); diff --git a/src/renderer/components/+workloads-pods/pod-details-list.tsx b/src/renderer/components/+workloads-pods/pod-details-list.tsx index 46e9e2151f..dc08d42fd0 100644 --- a/src/renderer/components/+workloads-pods/pod-details-list.tsx +++ b/src/renderer/components/+workloads-pods/pod-details-list.tsx @@ -9,7 +9,6 @@ import React from "react"; import kebabCase from "lodash/kebabCase"; import { reaction } from "mobx"; import { disposeOnUnmount, observer } from "mobx-react"; -import { podStore } from "./legacy-store"; import type { Pod } from "../../../common/k8s-api/endpoints"; import { autoBind, bytesToUnits, cssNames, interval, prevDefault } from "../../utils"; import { LineProgress } from "../line-progress"; @@ -19,6 +18,9 @@ import { Spinner } from "../spinner"; import { DrawerTitle } from "../drawer"; import { KubeObjectStatusIcon } from "../kube-object-status-icon"; import { showDetails } from "../kube-detail-params"; +import type { PodStore } from "./store"; +import { withInjectables } from "@ogre-tools/injectable-react"; +import podStoreInjectable from "./store.injectable"; enum sortBy { name = "name", @@ -35,15 +37,19 @@ export interface PodDetailsListProps { maxMemory?: number; } +interface Dependencies { + podStore: PodStore; +} + @observer -export class PodDetailsList extends React.Component { - constructor(props: PodDetailsListProps) { +class NonInjectedPodDetailsList extends React.Component { + constructor(props: PodDetailsListProps & Dependencies) { super(props); autoBind(this); } private metricsWatcher = interval(120, () => { - podStore.loadKubeMetrics(this.props.owner.getNs()); + this.props.podStore.loadKubeMetrics(this.props.owner.getNs()); }); componentDidMount() { @@ -107,7 +113,7 @@ export class PodDetailsList extends React.Component { } getTableRow(uid: string) { - const { pods } = this.props; + const { pods, podStore } = this.props; const pod = pods.find(pod => pod.getId() == uid); if (!pod) { @@ -138,7 +144,7 @@ export class PodDetailsList extends React.Component { } render() { - const { pods } = this.props; + const { pods, podStore } = this.props; if (!podStore.isLoaded) { return ( @@ -197,3 +203,10 @@ export class PodDetailsList extends React.Component { ); } } + +export const PodDetailsList = withInjectables(NonInjectedPodDetailsList, { + getProps: (di, props) => ({ + ...props, + podStore: di.inject(podStoreInjectable), + }), +});