({
comments,
label: i18n.t("ui.lineComment.submit"),
@@ -283,6 +343,16 @@ export function SessionReviewFilePreviewV2(props: SessionReviewFilePreviewV2Prop
+
+ }
+ variant="ghost"
+ size="small"
+ aria-label={i18n.t("ui.sessionReviewV2.copyFileContents")}
+ disabled={!canCopy() || copying()}
+ onClick={() => void copyContents()}
+ />
+
{
diff --git a/packages/ui/src/i18n/en.ts b/packages/ui/src/i18n/en.ts
index 7b3b9ef3dd02..170262ee1611 100644
--- a/packages/ui/src/i18n/en.ts
+++ b/packages/ui/src/i18n/en.ts
@@ -29,6 +29,10 @@ const source = {
"ui.sessionReviewV2.previousFile": "Previous file",
"ui.sessionReviewV2.nextFile": "Next file",
"ui.sessionReviewV2.diffView": "Diff view",
+ "ui.sessionReviewV2.copyFileContents": "Copy file contents",
+ "ui.sessionReviewV2.copiedFileContents": "File contents copied",
+ "ui.sessionReviewV2.copyUnavailable": "Full text content is unavailable",
+ "ui.sessionReviewV2.copyFailed": "Couldn't copy file contents",
"ui.sessionReviewV2.empty.noGit.title": "No tracked changes",
"ui.sessionReviewV2.empty.noGit.description": "Track, review, and undo changes in this project",
"ui.sessionReviewV2.empty.noGit.action": "Create Git repository",