import { Check, ChevronRight } from 'lucide-react'; import { Button } from '@/components/ui/button'; import { Badge } from '@/components/ui/badge'; import { Label } from '@/components/ui/label'; import { Dialog, DialogContent, DialogHeader, DialogTitle, DialogDescription, DialogFooter, } from '@/components/ui/dialog'; import { type Alert, getSeverityBadge } from './alert-center-helpers'; // Logan.Li — 统一从 helpers 导入 export function AlertDetailDialog({ alert, open, onOpenChange, onAcknowledge, }: { alert: Alert | null; open: boolean; onOpenChange: (open: boolean) => void; onAcknowledge: (id: string) => void; }) { return ( {alert?.title} {alert && getSeverityBadge(alert.severity)} {alert && (

{alert.description}

{alert.source}

{alert.service}

{alert.metric}

{alert.value} / {alert.threshold}

{alert.startedAt}

{alert.resolvedAt && (

{alert.resolvedAt}

)}
{Object.entries(alert.labels).map(([k, v]) => ( {k}={v} ))}
{alert.runbookUrl && (
查看处理手册 →
)}
)} {alert?.status === 'firing' && ( )}
); } export function AlertSilenceDialog({ alert, open, onOpenChange, onSilence, }: { alert: Alert | null; open: boolean; onOpenChange: (open: boolean) => void; onSilence: (id: string, duration: string) => void; }) { return ( 静默告警 选择静默持续时间
{['1h', '4h', '8h', '24h', '7d'].map((duration) => ( ))}
); }