diff --git a/vscode/webview-ui/src/components/PrFilesPanel.tsx b/vscode/webview-ui/src/components/PrFilesPanel.tsx index 4fb77c2..616dacf 100644 --- a/vscode/webview-ui/src/components/PrFilesPanel.tsx +++ b/vscode/webview-ui/src/components/PrFilesPanel.tsx @@ -1,8 +1,8 @@ /** * 「改动」tab(底部第四个):整个 PR 的改动以主从式呈现。 * - * - 左栏:统计条(共改 N 文件 · +X −Y · 已查看 M/N)+ 全 PR 文件树(目录树、状态徽标、 - * tests/ 过滤、已查看勾)。 + * - 左栏:统计条(共 N 文件 · +X −Y 为全量口径,含 tests/,与 Gitea 网页一致;已查看 M/N + * 的分母是可见文件数)+ 文件树(目录树、状态徽标、tests/ 过滤、已查看勾)。 * - 右栏:选中文件的内联 diff(git-diff-view,只渲染当前一个文件)。 * * 自带 usePrFiles hook,直接经 lib/vscode 收发消息,不依赖上层回调。diff 左右两侧用 @@ -87,16 +87,17 @@ export function PrFilesPanel({ issue }: PrFilesPanelProps) { // 路径 → 文件,选中时取 status/previousFilename。 const fileByPath = useMemo(() => new Map(visibleFiles.map(f => [f.path, f])), [visibleFiles]) + // total/±行数为全量口径(含 tests/,与 Gitea 网页一致);已查看的分母是可见文件数。 const stats = useMemo(() => { let additions = 0 let deletions = 0 - for (const f of visibleFiles) { + for (const f of files) { additions += f.additions deletions += f.deletions } const confirmedCount = visibleFiles.filter(f => confirmedSet.has(f.path)).length - return { total: visibleFiles.length, additions, deletions, confirmedCount } - }, [visibleFiles, confirmedSet]) + return { total: files.length, additions, deletions, confirmedCount, visibleTotal: visibleFiles.length } + }, [files, visibleFiles, confirmedSet]) const selectedFile = selectedPath ? fileByPath.get(selectedPath) : undefined @@ -143,7 +144,7 @@ export function PrFilesPanel({ issue }: PrFilesPanelProps) { {`+${stats.additions}`} {' '} {`−${stats.deletions}`} - {` · 已查看 ${stats.confirmedCount}/${stats.total}`} + {` · 已查看 ${stats.confirmedCount}/${stats.visibleTotal}`} )}