diff options
| author | Shoubhit Dash <[email protected]> | 2026-04-03 20:24:57 +0530 |
|---|---|---|
| committer | GitHub <[email protected]> | 2026-04-03 09:54:57 -0500 |
| commit | 35350b1d25a56665cf065eba68929fc00617fdd2 (patch) | |
| tree | 91bf53b5d87ff9532ebf0a779c4dbe7bc99148f3 /packages/ui/src | |
| parent | 263dcf75b548810a149f08ea5e32e0f6754128d5 (diff) | |
| download | opencode-35350b1d25a56665cf065eba68929fc00617fdd2.tar.gz opencode-35350b1d25a56665cf065eba68929fc00617fdd2.zip | |
feat: restore git-backed review modes (#20845)
Diffstat (limited to 'packages/ui/src')
| -rw-r--r-- | packages/ui/src/components/session-review.tsx | 35 | ||||
| -rw-r--r-- | packages/ui/src/i18n/en.ts | 2 |
2 files changed, 19 insertions, 18 deletions
diff --git a/packages/ui/src/components/session-review.tsx b/packages/ui/src/components/session-review.tsx index 1040aa292..3b582d66f 100644 --- a/packages/ui/src/components/session-review.tsx +++ b/packages/ui/src/components/session-review.tsx @@ -359,11 +359,10 @@ export const SessionReview = (props: SessionReviewProps) => { <Show when={hasDiffs()} fallback={props.empty}> <div class="pb-6"> <Accordion multiple value={open()} onChange={handleChange}> - <For each={files()}> - {(file) => { + <For each={props.diffs}> + {(diff) => { let wrapper: HTMLDivElement | undefined - - const item = createMemo(() => diffs().get(file)!) + const file = diff.file const expanded = createMemo(() => open().includes(file)) const mounted = createMemo(() => expanded() && (!!store.visible[file] || pinned(file))) @@ -372,9 +371,9 @@ export const SessionReview = (props: SessionReviewProps) => { const comments = createMemo(() => grouped().get(file) ?? []) const commentedLines = createMemo(() => comments().map((c) => c.selection)) - const beforeText = () => (typeof item().before === "string" ? item().before : "") - const afterText = () => (typeof item().after === "string" ? item().after : "") - const changedLines = () => item().additions + item().deletions + const beforeText = () => (typeof diff.before === "string" ? diff.before : "") + const afterText = () => (typeof diff.after === "string" ? diff.after : "") + const changedLines = () => diff.additions + diff.deletions const mediaKind = createMemo(() => mediaKindFromPath(file)) const tooLarge = createMemo(() => { @@ -385,9 +384,9 @@ export const SessionReview = (props: SessionReviewProps) => { }) const isAdded = () => - item().status === "added" || (beforeText().length === 0 && afterText().length > 0) + diff.status === "added" || (beforeText().length === 0 && afterText().length > 0) const isDeleted = () => - item().status === "deleted" || (afterText().length === 0 && beforeText().length > 0) + diff.status === "deleted" || (afterText().length === 0 && beforeText().length > 0) const selectedLines = createMemo(() => { const current = selection() @@ -425,7 +424,7 @@ export const SessionReview = (props: SessionReviewProps) => { file, selection, comment, - preview: selectionPreview(item(), selection), + preview: selectionPreview(diff, selection), }) }, onUpdate: ({ id, comment, selection }) => { @@ -434,7 +433,7 @@ export const SessionReview = (props: SessionReviewProps) => { file, selection, comment, - preview: selectionPreview(item(), selection), + preview: selectionPreview(diff, selection), }) }, onDelete: (comment) => { @@ -513,7 +512,7 @@ export const SessionReview = (props: SessionReviewProps) => { <span data-slot="session-review-change" data-type="added"> {i18n.t("ui.sessionReview.change.added")} </span> - <DiffChanges changes={item()} /> + <DiffChanges changes={diff} /> </div> </Match> <Match when={isDeleted()}> @@ -527,7 +526,7 @@ export const SessionReview = (props: SessionReviewProps) => { </span> </Match> <Match when={true}> - <DiffChanges changes={item()} /> + <DiffChanges changes={diff} /> </Match> </Switch> <span data-slot="session-review-diff-chevron"> @@ -582,7 +581,7 @@ export const SessionReview = (props: SessionReviewProps) => { <Dynamic component={fileComponent} mode="diff" - preloadedDiff={item().preloaded} + preloadedDiff={diff.preloaded} diffStyle={diffStyle()} onRendered={() => { props.onDiffRendered?.() @@ -599,17 +598,17 @@ export const SessionReview = (props: SessionReviewProps) => { commentedLines={commentedLines()} before={{ name: file, - contents: typeof item().before === "string" ? item().before : "", + contents: typeof diff.before === "string" ? diff.before : "", }} after={{ name: file, - contents: typeof item().after === "string" ? item().after : "", + contents: typeof diff.after === "string" ? diff.after : "", }} media={{ mode: "auto", path: file, - before: item().before, - after: item().after, + before: diff.before, + after: diff.after, readFile: props.readFile, }} /> diff --git a/packages/ui/src/i18n/en.ts b/packages/ui/src/i18n/en.ts index e66b55092..837fd5afc 100644 --- a/packages/ui/src/i18n/en.ts +++ b/packages/ui/src/i18n/en.ts @@ -1,5 +1,7 @@ export const dict: Record<string, string> = { "ui.sessionReview.title": "Session changes", + "ui.sessionReview.title.git": "Git changes", + "ui.sessionReview.title.branch": "Branch changes", "ui.sessionReview.title.lastTurn": "Last turn changes", "ui.sessionReview.diffStyle.unified": "Unified", "ui.sessionReview.diffStyle.split": "Split", |
