import { Tag, TagProps } from 'antd' import { useTranslation } from '@/i18n.ts' import { SyncOutlined } from '@ant-design/icons' export interface StatusProps extends TagProps { status: string } const getColor = (status: string) => { if (status.includes('error') || status.includes('err')) { return 'danger' } switch (status) { case 'running': return 'success' case 'stopped': return 'danger' case 'unhealthy': case 'paused': case 'exited': case 'dead': case 'removing': return 'warning' default: return 'default' } } const loadingStatus = [ 'installing', 'building', 'restarting', 'upgrading', 'rebuilding', 'recreating', 'creating', 'starting', 'removing', 'applying', ] const loadingIcon = (status: string): boolean => { return loadingStatus.indexOf(status) > -1 } export const Status = ({ status = 'running', ...props }: StatusProps) => { const { t } = useTranslation() const icon = loadingIcon(status) ? : null return ( <> {t(`status.${status}`, status)} ) } export default Status