'use client'; import { Badge } from '@/components/ui/badge'; import { Button } from '@/components/ui/button'; import { Sheet, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetTitle, } from '@/components/ui/sheet'; import type { ApplyLogItem } from '@/lib/services/openflare'; import { formatDateTime } from '@/lib/utils'; interface LogDetailSheetProps { log: ApplyLogItem | null; open: boolean; onOpenChange: (open: boolean) => void; } function getResultBadge(result: string) { if (result === 'success') { return ( 成功 ); } if (result === 'warning') { return ( 警告 ); } return ( 失败 ); } export function LogDetailSheet({ log, open, onOpenChange, }: LogDetailSheetProps) { return ( 应用日志详情 查看单条应用日志的完整结果与校验信息。 {log ? ( {getResultBadge(log.result)} Node: {log.node_id} 版本: {log.version} 创建时间 {formatDateTime(log.created_at)} 目标 Checksum {log.checksum || '—'} 主配置摘要 {log.main_config_checksum || '—'} 路由配置摘要 {log.route_config_checksum || '—'} 支持文件数 {log.support_file_count} 消息 {log.message || '—'} ) : null} onOpenChange(false)}> 关闭 ); }
创建时间
{formatDateTime(log.created_at)}
目标 Checksum
{log.checksum || '—'}
主配置摘要
{log.main_config_checksum || '—'}
路由配置摘要
{log.route_config_checksum || '—'}
支持文件数
{log.support_file_count}
消息
{log.message || '—'}