fix(tui): interaction improvements to diff viewer (#28851)

This commit is contained in:
James Long
2026-05-22 12:30:10 -04:00
committed by GitHub
parent 8a55920531
commit 69e4f52272
5 changed files with 285 additions and 44 deletions

View File

@@ -155,7 +155,7 @@ async function renderFrame(component: () => JSX.Element) {
const app = await testRender(() => withTheme(component), { width: 40, height: 10 })
try {
await renderOnceSettled(app)
return app.captureCharFrame()
return await captureSettledFrame(app)
} finally {
app.renderer.destroy()
}
@@ -167,6 +167,16 @@ async function renderOnceSettled(app: Awaited<ReturnType<typeof testRender>>) {
await app.renderOnce()
}
async function captureSettledFrame(app: Awaited<ReturnType<typeof testRender>>) {
for (let attempt = 0; attempt < 5; attempt++) {
const frame = app.captureCharFrame()
if (frame.trim().length > 0) return frame
await new Promise((resolve) => setTimeout(resolve, 25))
await app.renderOnce()
}
return app.captureCharFrame()
}
function withTheme(component: () => JSX.Element) {
return (
<TuiConfigProvider config={createTuiResolvedConfig()}>