diff --git a/web/app/dashboard/reports/[id]/page.tsx b/web/app/dashboard/reports/[id]/page.tsx index ccf66ee..14ea9f1 100644 --- a/web/app/dashboard/reports/[id]/page.tsx +++ b/web/app/dashboard/reports/[id]/page.tsx @@ -278,6 +278,7 @@ export default function ReviewReportPage() { const [report, setReport] = useState(null); const [isLoading, setIsLoading] = useState(true); const [isRetrying, setIsRetrying] = useState(false); + const [showReportMarkdown, setShowReportMarkdown] = useState(false); const loadReport = useCallback(async () => { if (!reportId) { @@ -299,6 +300,10 @@ export default function ReviewReportPage() { void loadReport(); }, [loadReport]); + useEffect(() => { + setShowReportMarkdown(false); + }, [reportId]); + const overallFindings = useMemo( () => report?.findings.filter((finding) => finding.filePath === 'PR_OVERALL') || [], [report?.findings] @@ -321,6 +326,8 @@ export default function ReviewReportPage() { const traceEntries = report?.trace?.entries || []; const skippedFiles = report?.coverage?.skippedFiles || []; const suppressedCount = report?.suppressedFindings?.length || 0; + const hasStructuredInsights = overallFindings.length > 0 || (report?.fileContexts.length || 0) > 0 || (report?.findings.length || 0) > 0 || traceEntries.length > 0; + const shouldRenderMarkdown = Boolean(report?.reportMarkdown) && (!hasStructuredInsights || showReportMarkdown); const handleRetry = useCallback(async () => { if (!reportId) { @@ -448,21 +455,35 @@ export default function ReviewReportPage() {
-

Rendered Markdown

-

PR 审查报告

+

Raw Report

+

原始 Markdown 报告

- - GitHub-style prose - + {report.reportMarkdown ? ( + + ) : ( + + 暂无 Markdown + + )}
- {report.reportMarkdown ? ( + {shouldRenderMarkdown ? (
{report.reportMarkdown}
+ ) : report.reportMarkdown ? ( +
+ 结构化报告已经展示在当前页面,原始 Markdown 已折叠。需要时可展开查看完整生成文本。 +
) : (
当前报告没有 Markdown 内容。