blob: 1b37998ff21d8dab22d83b882379432bd1dc4aef [file] [log] [blame]
import React from 'react';
import {
DescriptionList,
DescriptionListDescription,
DescriptionListGroup,
DescriptionListTerm,
Label,
} from '@patternfly/react-core';
import '../../designer/karavan.css';
import DownIcon from "@patternfly/react-icons/dist/esm/icons/error-circle-o-icon";
import UpIcon from "@patternfly/react-icons/dist/esm/icons/check-circle-icon";
import {ContainerStatus} from "../../api/ProjectModels";
interface Props {
containerStatus: ContainerStatus,
}
export function InfoContainer (props: Props) {
function getPodInfoLabel(info: string) {
return (
<Label icon={getIcon()} color={getColor()}>
{info}
</Label>
)
}
function getIcon() {
return (getRunning() ? <UpIcon/> : <DownIcon/>)
}
function getColor() {
return getRunning() ? "green" : "grey";
}
function getRunning(): boolean {
return props.containerStatus.state === 'running';
}
const containerStatus = props.containerStatus;
return (
<DescriptionList isHorizontal>
<DescriptionListGroup>
<DescriptionListTerm>Pod</DescriptionListTerm>
<DescriptionListDescription>
{getPodInfoLabel(containerStatus.containerName)}
</DescriptionListDescription>
</DescriptionListGroup>
<DescriptionListGroup>
<DescriptionListTerm>Status</DescriptionListTerm>
<DescriptionListDescription>
{getPodInfoLabel(containerStatus.state)}
</DescriptionListDescription>
</DescriptionListGroup>
<DescriptionListGroup>
<DescriptionListTerm>CPU</DescriptionListTerm>
<DescriptionListDescription>
{getPodInfoLabel(containerStatus.cpuInfo)}
</DescriptionListDescription>
</DescriptionListGroup>
<DescriptionListGroup>
<DescriptionListTerm>Memory</DescriptionListTerm>
<DescriptionListDescription>
{getPodInfoLabel(containerStatus.memoryInfo)}
</DescriptionListDescription>
</DescriptionListGroup>
<DescriptionListGroup>
<DescriptionListTerm>Created</DescriptionListTerm>
<DescriptionListDescription>
{getPodInfoLabel(containerStatus.created)}
</DescriptionListDescription>
</DescriptionListGroup>
</DescriptionList>
);
}