1
0
mirror of https://github.com/lensapp/lens.git synced 2025-05-20 05:10:56 +00:00
lens/src/renderer/components/+storage-classes/storage-class-details.tsx
Jari Kolehmainen a03da3c572
Remove lingui (#1874)
* remove lingui

Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>

* babelless

Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>

* tweak ts-loader options

Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>

* tweak renderer webpack config

Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
2020-12-29 14:53:34 +02:00

79 lines
2.2 KiB
TypeScript

import "./storage-class-details.scss";
import React from "react";
import startCase from "lodash/startCase";
import { DrawerItem, DrawerTitle } from "../drawer";
import { Badge } from "../badge";
import { KubeEventDetails } from "../+events/kube-event-details";
import { observer } from "mobx-react";
import { KubeObjectDetailsProps } from "../kube-object";
import { StorageClass } from "../../api/endpoints";
import { KubeObjectMeta } from "../kube-object/kube-object-meta";
import { kubeObjectDetailRegistry } from "../../api/kube-object-detail-registry";
interface Props extends KubeObjectDetailsProps<StorageClass> {
}
@observer
export class StorageClassDetails extends React.Component<Props> {
render() {
const { object: storageClass } = this.props;
if (!storageClass) return null;
const { provisioner, parameters, mountOptions } = storageClass;
return (
<div className="StorageClassDetails">
<KubeObjectMeta object={storageClass}/>
{provisioner && (
<DrawerItem name="Provisioner" labelsOnly>
<Badge label={provisioner}/>
</DrawerItem>
)}
<DrawerItem name="Volume Binding Mode">
{storageClass.getVolumeBindingMode()}
</DrawerItem>
<DrawerItem name="Reclaim Policy">
{storageClass.getReclaimPolicy()}
</DrawerItem>
{mountOptions && (
<DrawerItem name="Mount Options">
{mountOptions.join(", ")}
</DrawerItem>
)}
{parameters && (
<>
<DrawerTitle title={`Parameters`}/>
{
Object.entries(parameters).map(([name, value]) => (
<DrawerItem key={name + value} name={startCase(name)}>
{value}
</DrawerItem>
))
}
</>
)}
</div>
);
}
}
kubeObjectDetailRegistry.add({
kind: "StorageClass",
apiVersions: ["storage.k8s.io/v1"],
components: {
Details: (props) => <StorageClassDetails {...props} />
}
});
kubeObjectDetailRegistry.add({
kind: "StorageClass",
apiVersions: ["storage.k8s.io/v1"],
priority: 5,
components: {
Details: (props) => <KubeEventDetails {...props} />
}
});