+ {parsedFiles.map((fileDiff) => {
+ const key = fileDiff.name ?? fileDiff.prevName ?? "";
+ const isCollapsed = collapsedFiles.has(key);
+ const deferredReason = getDeferredReason(key);
+
+ if (deferredReason) {
+ const { additions, deletions } = sumHunkStats(fileDiff.hunks);
+ return (
+
+ toggleFile(key)}
+ onShow={() => revealFile(key)}
+ />
+
+ );
+ }
+
+ return (
+
+ (
+ toggleFile(key)}
+ onOpenFile={() =>
+ openFile(taskId, `${repoPath}/${key}`, false)
+ }
+ />
+ )}
+ />
+
+ );
+ })}
+ {untrackedFiles.map((file) => {
+ const isCollapsed = collapsedFiles.has(file.path);
+ return (
+
+ toggleFile(file.path)}
+ />
+
+ );
+ })}
+
+ );
+}
+
+function UntrackedFileDiff({
+ file,
+ repoPath,
+ options,
+ collapsed,
+ onToggle,
+}: {
+ file: ChangedFile;
+ repoPath: string;
+ options: FileDiffOptions