mirror of
https://github.com/portainer/portainer.git
synced 2025-07-22 14:59:41 +02:00
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
50 lines
1.3 KiB
TypeScript
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>
|
|
);
|
|
}
|