1
0
Fork 0
mirror of https://github.com/portainer/portainer.git synced 2025-07-22 14:59:41 +02:00
portainer/app/react/docker/containers/ItemView/HealthStatus.tsx
Ali d38085a560
Some checks are pending
ci / build_images (map[arch:amd64 platform:linux version:]) (push) Waiting to run
ci / build_images (map[arch:amd64 platform:windows version:1809]) (push) Waiting to run
ci / build_images (map[arch:amd64 platform:windows version:ltsc2022]) (push) Waiting to run
ci / build_images (map[arch:arm platform:linux version:]) (push) Waiting to run
ci / build_images (map[arch:arm64 platform:linux version:]) (push) Waiting to run
ci / build_images (map[arch:ppc64le platform:linux version:]) (push) Waiting to run
ci / build_images (map[arch:s390x platform:linux version:]) (push) Waiting to run
ci / build_manifests (push) Blocked by required conditions
/ triage (push) Waiting to run
Lint / Run linters (push) Waiting to run
Test / test-client (push) Waiting to run
Test / test-server (map[arch:amd64 platform:linux]) (push) Waiting to run
Test / test-server (map[arch:amd64 platform:windows version:1809]) (push) Waiting to run
Test / test-server (map[arch:amd64 platform:windows version:ltsc2022]) (push) Waiting to run
Test / test-server (map[arch:arm64 platform:linux]) (push) Waiting to run
chore(data-cy): require data-cy attributes [EE-6880] (#11453)
2024-04-11 12:11:38 +12:00

50 lines
1.3 KiB
TypeScript

import { ComponentProps } from 'react';
import { HeartPulse, Server } from 'lucide-react';
import { TableContainer, TableTitle } from '@@/datatables';
import { DetailsTable } from '@@/DetailsTable';
import { Icon } from '@@/Icon';
import { Health } from '../types/response';
const StatusMode: Record<
Health['Status'],
ComponentProps<typeof Icon>['mode']
> = {
healthy: 'success',
unhealthy: 'danger',
starting: 'warning',
};
interface Props {
health: Health;
}
export function HealthStatus({ health }: Props) {
return (
<TableContainer>
<TableTitle label="Container health" icon={Server} />
<DetailsTable dataCy="health-status-table">
<DetailsTable.Row label="Status">
<div className="vertical-center">
<Icon
icon={HeartPulse}
mode={StatusMode[health.Status]}
className="space-right"
/>
{health.Status}
</div>
</DetailsTable.Row>
<DetailsTable.Row label="Failure count">
<div className="vertical-center">{health.FailingStreak}</div>
</DetailsTable.Row>
<DetailsTable.Row label="Last output">
{health.Log[health.Log.length - 1].Output}
</DetailsTable.Row>
</DetailsTable>
</TableContainer>
);
}