1
0
Fork 0
mirror of https://github.com/portainer/portainer.git synced 2025-07-23 15:29:42 +02:00
portainer/app/react/docker/DashboardView/ContainerStatus.tsx
Rex Wang 69a824c25b
Fix(UI) Update UI of docker dashboard EE-3845 (#7422)
* EE-3846 fix alignment of left-hand side of fields
2022-08-05 10:17:31 +08:00

72 lines
2.1 KiB
TypeScript

import clsx from 'clsx';
import { Icon } from '@/react/components/Icon';
import { DockerContainer } from '../containers/types';
interface Props {
containers: DockerContainer[];
}
export function useContainerStatusComponent(containers: DockerContainer[]) {
return <ContainerStatus containers={containers} />;
}
export function ContainerStatus({ containers }: Props) {
return (
<div className="pull-right">
<div>
<div className="vertical-center space-right pr-5">
<Icon
icon="power"
className={clsx('icon icon-sm icon-success')}
feather
/>
{runningContainersFilter(containers)} running
</div>
<div className="vertical-center space-right">
<Icon
icon="power"
className={clsx('icon icon-sm icon-danger')}
feather
/>
{stoppedContainersFilter(containers)} stopped
</div>
</div>
<div>
<div className="vertical-center space-right pr-5">
<Icon
icon="heart"
className={clsx('icon icon-sm icon-success')}
feather
/>
{healthyContainersFilter(containers)} healthy
</div>
<div className="vertical-center space-right">
<Icon
icon="heart"
className={clsx('icon icon-sm icon-danger')}
feather
/>
{unhealthyContainersFilter(containers)} unhealthy
</div>
</div>
</div>
);
}
function runningContainersFilter(containers: DockerContainer[]) {
return containers.filter((container) => container.Status === 'running')
.length;
}
function stoppedContainersFilter(containers: DockerContainer[]) {
return containers.filter((container) => container.Status === 'exited').length;
}
function healthyContainersFilter(containers: DockerContainer[]) {
return containers.filter((container) => container.Status === 'healthy')
.length;
}
function unhealthyContainersFilter(containers: DockerContainer[]) {
return containers.filter((container) => container.Status === 'unhealthy')
.length;
}