'use client'; import { useTranslations } from 'next-intl'; 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 ResultBadge({ result }: { result: string }) { const t = useTranslations('applyLogs'); if (result === 'success') { return ( {t('success')} ); } if (result === 'warning') { return ( {t('warning')} ); } return ( {t('failed')} ); } export function LogDetailSheet({ log, open, onOpenChange, }: LogDetailSheetProps) { const t = useTranslations('applyLogs'); return ( {t('sheetTitle')} {t('sheetDesc')} {log ? (
Node: {log.node_id} {t('versionBadge', { version: log.version })}

{t('createdAt')}

{formatDateTime(log.created_at)}

{t('targetChecksum')}

{log.checksum || '—'}

{t('mainChecksum')}

{log.main_config_checksum || '—'}

{t('routeChecksum')}

{log.route_config_checksum || '—'}

{t('supportFiles')}

{log.support_file_count}

{t('message')}

                {log.message || '—'}
              
) : null}
); }