import { useEffect } from 'react'; import ReactMarkdown from 'react-markdown'; import { useI18n } from '../i18n/I18nContext'; /** * AI 诊断报告查看 Modal * @param {Object} props * @param {Object|null} props.diagnosis - 诊断记录对象 * @param {Function} props.onClose - 关闭回调 */ export default function AiDiagnosisModal({ diagnosis, onClose }) { const { en } = useI18n(); useEffect(() => { const handleEsc = (e) => { if (e.key === 'Escape') onClose(); }; window.addEventListener('keydown', handleEsc); return () => window.removeEventListener('keydown', handleEsc); }, [onClose]); if (!diagnosis) return null; const riskLevelMap = { low: { label: en ? 'Low' : '低', color: '#48bb78' }, medium: { label: en ? 'Medium' : '中', color: '#ed8936' }, high: { label: en ? 'High' : '高', color: '#f56565' }, critical: { label: en ? 'Critical' : '极高', color: '#c53030' }, }; const riskInfo = riskLevelMap[diagnosis.risk_level] || { label: en ? 'Unknown' : '未知', color: '#a0aec0' }; return (