mirror of
https://github.com/anomalyco/opencode.git
synced 2026-11-01 03:42:04 +00:00
fix(tui): stop repeated review from reopening the last diff file (#55845)
This commit is contained in:
parent
412b2b1d85
commit
3485a7b366
2 changed files with 10 additions and 1 deletions
|
|
@ -355,6 +355,7 @@ export function DiffViewerContent(props: {
|
|||
const [expandedFileNodes, setExpandedFileNodes] = createSignal<ReadonlySet<number>>(new Set())
|
||||
const [selectedFileIndex, setSelectedFileIndex] = createSignal<number | undefined>()
|
||||
const [reviewedFileNames, setReviewedFileNames] = createSignal<ReadonlySet<string>>(new Set())
|
||||
const [exhaustedFileIndex, setExhaustedFileIndex] = createSignal<number | undefined>()
|
||||
const [fileMenu, setFileMenu] = createSignal<FileMenuState>()
|
||||
const patchScrollAcceleration = createMemo(() => getScrollAcceleration(config.data))
|
||||
const patchFileIndexes = createMemo(() => orderedPatchFileIndexes(flattenFileTree(fileTree())))
|
||||
|
|
@ -370,6 +371,7 @@ export function DiffViewerContent(props: {
|
|||
setSelectedFileIndex(undefined)
|
||||
setSelectedHunk(undefined)
|
||||
setReviewedFileNames(new Set<string>())
|
||||
setExhaustedFileIndex(undefined)
|
||||
setFileMenu(undefined)
|
||||
})
|
||||
|
||||
|
|
@ -404,6 +406,7 @@ export function DiffViewerContent(props: {
|
|||
|
||||
const selectPatchFile = (fileIndex: number) => {
|
||||
setPendingPatchScrollFileIndex(undefined)
|
||||
setExhaustedFileIndex(undefined)
|
||||
revealFileTreeFile(fileIndex)
|
||||
setSelectedFileIndex(fileIndex)
|
||||
}
|
||||
|
|
@ -564,6 +567,7 @@ export function DiffViewerContent(props: {
|
|||
const nextFileIndex =
|
||||
singlePatch() && !reviewed ? (movePatchFileIndex(patchFileIndexes(), fileIndex, 1) ?? fileIndex) : fileIndex
|
||||
selectPatchFile(nextFileIndex)
|
||||
if (singlePatch() && !reviewed && nextFileIndex === fileIndex) setExhaustedFileIndex(fileIndex)
|
||||
setSelectedHunk(undefined)
|
||||
scrollToPatchFileIndexAfterRender(nextFileIndex)
|
||||
}
|
||||
|
|
@ -685,7 +689,9 @@ export function DiffViewerContent(props: {
|
|||
title: "Toggle selected diff file reviewed",
|
||||
group: "VCS",
|
||||
run() {
|
||||
toggleFileReviewed(selectedFileIndex() ?? currentPatchFileIndex())
|
||||
const fileIndex = selectedFileIndex() ?? currentPatchFileIndex()
|
||||
if (fileIndex !== undefined && fileIndex === exhaustedFileIndex()) return
|
||||
toggleFileReviewed(fileIndex)
|
||||
},
|
||||
},
|
||||
{
|
||||
|
|
|
|||
|
|
@ -1496,6 +1496,9 @@ test.each([80, 160])(
|
|||
expect(viewer.app.renderer.root.findDescendantById("diff-file-header-2")).toBeDefined()
|
||||
expect(viewer.app.renderer.root.findDescendantById("diff-file-header-0")).toBeUndefined()
|
||||
expect(findDiffs(viewer.app.renderer.root)).toHaveLength(0)
|
||||
viewer.app.mockInput.pressKey("m")
|
||||
await viewer.app.flush()
|
||||
expect(findDiffs(viewer.app.renderer.root)).toHaveLength(0)
|
||||
|
||||
viewer.app.mockInput.pressKey("?")
|
||||
await viewer.app.waitForFrame((frame) => frame.includes("Review + next / reopen"))
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue