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

Remove last usage of legacy global endpointsStore

Signed-off-by: Sebastian Malton <sebastian@malton.name>
This commit is contained in:
Sebastian Malton 2022-11-30 08:49:59 -05:00
parent 665e3a5443
commit fabde6acc4
2 changed files with 21 additions and 23 deletions

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 endpointsStoreInjectable from "./store.injectable";
/**
* @deprecated use `di.inject(endpointsStoreInjectable)`
*/
export const endpointsStore = asLegacyGlobalForExtensionApi(endpointsStoreInjectable);

View File

@ -7,31 +7,33 @@ import { observer } from "mobx-react";
import React from "react";
import { Table, TableHead, TableCell, TableRow } from "../table";
import { prevDefault } from "../../utils";
import { endpointsStore } from "../+network-endpoints/legacy-store";
import { Spinner } from "../spinner";
import { showDetails } from "../kube-detail-params";
import logger from "../../../common/logger";
import type { Logger } from "../../../common/logger";
import { Endpoints } from "../../../common/k8s-api/endpoints";
import type { ShowDetails } from "../kube-detail-params/show-details.injectable";
import { withInjectables } from "@ogre-tools/injectable-react";
import loggerInjectable from "../../../common/logger.injectable";
import showDetailsInjectable from "../kube-detail-params/show-details.injectable";
export interface ServiceDetailsEndpointProps {
endpoints: Endpoints;
}
interface Dependencies {
logger: Logger;
showDetails: ShowDetails;
}
@observer
export class ServiceDetailsEndpoint extends React.Component<ServiceDetailsEndpointProps> {
class NonInjectedServiceDetailsEndpoint extends React.Component<ServiceDetailsEndpointProps & Dependencies> {
render() {
const { endpoints } = this.props;
if (!endpoints && !endpointsStore.isLoaded) return (
<div className="PodDetailsList flex justify-center"><Spinner/></div>
);
if (!endpoints) {
return null;
}
if (!(endpoints instanceof Endpoints)) {
logger.error("[ServiceDetailsEndpoint]: passed object that is not an instanceof Endpoints", endpoints);
this.props.logger.error("[ServiceDetailsEndpoint]: passed object that is not an instanceof Endpoints", endpoints);
return null;
}
@ -51,7 +53,7 @@ export class ServiceDetailsEndpoint extends React.Component<ServiceDetailsEndpoi
<TableRow
key={endpoints.getId()}
nowrap
onClick={prevDefault(() => showDetails(endpoints.selfLink, false))}
onClick={prevDefault(() => this.props.showDetails(endpoints.selfLink, false))}
>
<TableCell className="name">{endpoints.getName()}</TableCell>
<TableCell className="endpoints">{ endpoints.toString()}</TableCell>
@ -61,3 +63,11 @@ export class ServiceDetailsEndpoint extends React.Component<ServiceDetailsEndpoi
);
}
}
export const ServiceDetailsEndpoint = withInjectables<Dependencies, ServiceDetailsEndpointProps>(NonInjectedServiceDetailsEndpoint, {
getProps: (di, props) => ({
...props,
logger: di.inject(loggerInjectable),
showDetails: di.inject(showDetailsInjectable),
}),
});