diff options
| author | Shoubhit Dash <[email protected]> | 2026-03-25 21:09:53 +0530 |
|---|---|---|
| committer | GitHub <[email protected]> | 2026-03-25 21:09:53 +0530 |
| commit | 73e107250dd44afef244021694a3343d2cc9715a (patch) | |
| tree | 2b8fb6b810a1bc12fe06d1663dcdae1409670ba8 /packages/ui/src | |
| parent | b746aec49316d8f83d40aa34fa55bf7cff81c036 (diff) | |
| download | opencode-73e107250dd44afef244021694a3343d2cc9715a.tar.gz opencode-73e107250dd44afef244021694a3343d2cc9715a.zip | |
feat: restore git-backed review modes with effectful git service (#18900)
Diffstat (limited to 'packages/ui/src')
| -rw-r--r-- | packages/ui/src/components/session-review.tsx | 36 | ||||
| -rw-r--r-- | packages/ui/src/i18n/en.ts | 2 |
2 files changed, 19 insertions, 19 deletions
diff --git a/packages/ui/src/components/session-review.tsx b/packages/ui/src/components/session-review.tsx index 83d2980f6..2274e93a3 100644 --- a/packages/ui/src/components/session-review.tsx +++ b/packages/ui/src/components/session-review.tsx @@ -151,7 +151,6 @@ export const SessionReview = (props: SessionReviewProps) => { const open = () => props.open ?? store.open const files = createMemo(() => props.diffs.map((diff) => diff.file)) - const diffs = createMemo(() => new Map(props.diffs.map((diff) => [diff.file, diff] as const))) const diffStyle = () => props.diffStyle ?? (props.split ? "split" : "unified") const hasDiffs = () => files().length > 0 @@ -282,11 +281,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 force = () => !!store.force[file] @@ -294,9 +292,9 @@ export const SessionReview = (props: SessionReviewProps) => { const comments = createMemo(() => (props.comments ?? []).filter((c) => c.file === 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(() => { @@ -307,9 +305,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() @@ -346,7 +344,7 @@ export const SessionReview = (props: SessionReviewProps) => { file, selection, comment, - preview: selectionPreview(item(), selection), + preview: selectionPreview(diff, selection), }) }, onUpdate: ({ id, comment, selection }) => { @@ -355,7 +353,7 @@ export const SessionReview = (props: SessionReviewProps) => { file, selection, comment, - preview: selectionPreview(item(), selection), + preview: selectionPreview(diff, selection), }) }, onDelete: (comment) => { @@ -432,7 +430,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()}> @@ -446,7 +444,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"> @@ -492,7 +490,7 @@ export const SessionReview = (props: SessionReviewProps) => { <Dynamic component={fileComponent} mode="diff" - preloadedDiff={item().preloaded} + preloadedDiff={diff.preloaded} diffStyle={diffStyle()} onRendered={() => { props.onDiffRendered?.() @@ -509,17 +507,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 18823aeaa..d9f724fce 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", |
