Remove usages of legacy global podStore

Signed-off-by: Sebastian Malton <sebastian@malton.name>
This commit is contained in:
Sebastian Malton committed 2023-01-05 13:27:57 -05:00
1 parent c201d136b2
commit d16b111e5a
3 files changed
+21 -19

No files matched your search

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