From 83b527211ff4526103bf487829ed33a975a7a797 Mon Sep 17 00:00:00 2001 From: Christian Rey Villablanca Date: Tue, 4 Aug 2026 13:50:58 +0800 Subject: [PATCH] fix(chat): retain expanded preview collapse state --- tests/regression/chat-css-regression.test.mjs | 8 ++++++++ webview/shared/src/chat/MessageComponents.tsx | 3 ++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/tests/regression/chat-css-regression.test.mjs b/tests/regression/chat-css-regression.test.mjs index 08564fb..1d80998 100644 --- a/tests/regression/chat-css-regression.test.mjs +++ b/tests/regression/chat-css-regression.test.mjs @@ -153,6 +153,14 @@ test('response previews stay contained inside activity cards', () => { ); }); +test('expanded response previews retain their collapse control', () => { + assert.match( + messageComponentsSource, + /if \(!preview\) \{\s*setHasResponseOverflow\(false\);\s*return;\s*}\s*if \(!shouldConstrainResponsePreview\) return;/s, + 'expanding a response must preserve its measured overflow state so Show less remains available', + ); +}); + // ── Markdown list styling regression tests ─────────────────────────────────────── test('markdown-body ordered lists must display with decimal numbers (not bullets)', () => { diff --git a/webview/shared/src/chat/MessageComponents.tsx b/webview/shared/src/chat/MessageComponents.tsx index 1129ff8..ecd5483 100644 --- a/webview/shared/src/chat/MessageComponents.tsx +++ b/webview/shared/src/chat/MessageComponents.tsx @@ -11723,10 +11723,11 @@ const hasVisibleResponseSectionContent = useEffect(() => { const preview = responsePreviewRef.current; - if (!preview || !shouldConstrainResponsePreview) { + if (!preview) { setHasResponseOverflow(false); return; } + if (!shouldConstrainResponsePreview) return; const updateOverflow = () => { const nextHasOverflow = preview.scrollHeight > preview.clientHeight + 1;