2023-08-17 22:00:25 +12:00
|
|
|
import { CellContext } from '@tanstack/react-table';
|
|
|
|
|
2025-07-21 15:05:08 +12:00
|
|
|
import { pluralize } from '@/react/common/string-utils';
|
|
|
|
|
|
|
|
import { Badge } from '@@/Badge';
|
|
|
|
import { Tooltip } from '@@/Tip/Tooltip';
|
2023-08-17 22:00:25 +12:00
|
|
|
|
|
|
|
import { ContainerRowData } from '../types';
|
|
|
|
|
|
|
|
import { columnHelper } from './helper';
|
|
|
|
|
|
|
|
export const status = columnHelper.accessor('status', {
|
|
|
|
header: 'Status',
|
|
|
|
cell: StatusCell,
|
|
|
|
});
|
|
|
|
|
2025-07-21 15:05:08 +12:00
|
|
|
function StatusCell({
|
|
|
|
getValue,
|
|
|
|
}: CellContext<ContainerRowData, ContainerRowData['status']>) {
|
|
|
|
const statusData = getValue();
|
2023-08-17 22:00:25 +12:00
|
|
|
|
2025-07-21 15:05:08 +12:00
|
|
|
return (
|
|
|
|
<Badge type={statusData.type}>
|
|
|
|
<div className="flex items-center gap-1">
|
|
|
|
<span>
|
|
|
|
{statusData.status}
|
|
|
|
{statusData.restartCount &&
|
|
|
|
` (Restarted ${statusData.restartCount} ${pluralize(
|
|
|
|
statusData.restartCount,
|
|
|
|
'time'
|
|
|
|
)})`}
|
|
|
|
</span>
|
|
|
|
</div>
|
|
|
|
{statusData.message && <Tooltip message={statusData.message} />}
|
|
|
|
</Badge>
|
|
|
|
);
|
2023-08-17 22:00:25 +12:00
|
|
|
}
|