1
0
mirror of https://github.com/lensapp/lens.git synced 2025-05-20 05:10:56 +00:00

Remove usages of legacy global podStore

Signed-off-by: Sebastian Malton <sebastian@malton.name>
This commit is contained in:
Sebastian Malton 2022-12-22 12:39:05 -05:00
parent c201d136b2
commit d16b111e5a
3 changed files with 21 additions and 19 deletions

View File

@ -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,

View File

@ -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);

View File

@ -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<PodDetailsListProps> {
constructor(props: PodDetailsListProps) {
class NonInjectedPodDetailsList extends React.Component<PodDetailsListProps & Dependencies> {
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<PodDetailsListProps> {
}
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<PodDetailsListProps> {
}
render() {
const { pods } = this.props;
const { pods, podStore } = this.props;
if (!podStore.isLoaded) {
return (
@ -197,3 +203,10 @@ export class PodDetailsList extends React.Component<PodDetailsListProps> {
);
}
}
export const PodDetailsList = withInjectables<Dependencies, PodDetailsListProps>(NonInjectedPodDetailsList, {
getProps: (di, props) => ({
...props,
podStore: di.inject(podStoreInjectable),
}),
});