// DeploymentOverview.tsx — Deployment 详情头部、状态与操作区 // Logan.Li import { ArrowLeft, Minus, Plus, RotateCw, Upload, RefreshCw, Loader2, } from 'lucide-react'; import { Card, CardContent, CardHeader, CardTitle } from '@/components/ui/card'; import { Button } from '@/components/ui/button'; import { Input } from '@/components/ui/input'; import { Badge } from '@/components/ui/badge'; import { CreateHPADialog } from './CreateHPADialog'; import type { JsonData } from '@/types/common'; import { useTranslation } from 'react-i18next'; export interface DeploymentOverviewProps { deploymentName: string; namespace: string; deployment?: JsonData; hpas: JsonData[]; clusterCode: string; ready: number; total: number; available: number; isHealthy: boolean; actionLoading: string; newImage: string; showImageUpdate: boolean; onBack: () => void; onRefresh: () => void; onScale: (delta: number) => void; onRestart: () => void; onNewImageChange: (value: string) => void; onToggleImageUpdate: () => void; onUpdateImage: () => void; } export function DeploymentOverview({ deploymentName, namespace, deployment, hpas, clusterCode, ready, total, available, isHealthy, actionLoading, newImage, showImageUpdate, onBack, onRefresh, onScale, onRestart, onNewImageChange, onToggleImageUpdate, onUpdateImage, }: DeploymentOverviewProps) { const { t } = useTranslation(); return ( <>

{deploymentName}

{namespace}

镜像: {deployment.image || '-'}

{t('kubernetes.deploymentoverview.sb4cac1')}

{ready}/{total}

{t('k8s.column.availableReplicas')}

{available}

{t('k8s.column.image')}

{deployment.image?.split('/').pop() || '-'}

HPA

{hpas.length > 0 ? (

{t('alert.enabled')}

) : (

{t('k8s.dnsHost.notConfigured')}

)}
{t('common.actions')}
{actionLoading === 'scale' ? : total}
{showImageUpdate && (
onNewImageChange(e.target.value)} placeholder=t('kubernetes.deploymentoverview.s416d7e') className="flex-1 h-9 dg-input text-[var(--dg-text-primary)] text-sm font-mono" />
)}
); }