From 67b63e984400b8c5377557bc4c25682dc44b188d Mon Sep 17 00:00:00 2001 From: pewdiepie-archdaemon Date: Wed, 3 Jun 2026 23:04:28 +0900 Subject: [PATCH] Revert "fix(ui): allow manual prompt bar resize (#1201)" This reverts commit 258e6fc0d435def435c61ec24ae4a6f4d168932b. --- static/js/ui.js | 22 +++------------------- static/style.css | 4 ++-- tests/test_prompt_bar_manual_resize.py | 16 ---------------- 3 files changed, 5 insertions(+), 37 deletions(-) delete mode 100644 tests/test_prompt_bar_manual_resize.py diff --git a/static/js/ui.js b/static/js/ui.js index 90cab07..aa82cc6 100644 --- a/static/js/ui.js +++ b/static/js/ui.js @@ -519,20 +519,7 @@ export function getAutoScroll() { export function autoResize(textarea) { const lineHeight = parseInt(getComputedStyle(textarea).lineHeight); const isMobile = window.innerWidth <= 768; - const autoMaxHeight = isMobile ? 150 : lineHeight * 8; - - // Keep a height chosen with the native desktop resize handle. Automatic - // changes are recorded before the observer runs, so only a real drag - // updates the manual floor. - if (!textarea._manualResizeObserver && typeof ResizeObserver !== 'undefined') { - textarea._manualResizeObserver = new ResizeObserver(() => { - const height = textarea.offsetHeight; - if (Math.abs(height - (textarea._autoResizeHeight || height)) > 1) { - textarea._manualResizeHeight = height; - } - }); - textarea._manualResizeObserver.observe(textarea); - } + const maxHeight = isMobile ? 150 : lineHeight * 8; // Use a hidden clone to measure without disrupting the real textarea let clone = textarea._resizeClone; @@ -552,12 +539,9 @@ export function autoResize(textarea) { clone.style.width = textarea.offsetWidth + 'px'; clone.value = textarea.value; clone.style.height = '0'; - const manualHeight = textarea._manualResizeHeight || 0; - const maxHeight = Math.max(autoMaxHeight, manualHeight); - const newHeight = Math.min(Math.max(clone.scrollHeight, lineHeight, manualHeight), maxHeight); - textarea._autoResizeHeight = newHeight; + const newHeight = Math.min(Math.max(clone.scrollHeight, lineHeight), maxHeight); textarea.style.height = newHeight + 'px'; - textarea.style.overflow = newHeight >= autoMaxHeight ? 'auto' : 'hidden'; + textarea.style.overflow = newHeight >= maxHeight ? 'auto' : 'hidden'; } /** diff --git a/static/style.css b/static/style.css index 30725ed..f6681b9 100644 --- a/static/style.css +++ b/static/style.css @@ -2204,12 +2204,12 @@ body.bg-pattern-sparkles { background: transparent; border: none; outline: none; - resize: vertical; + resize: none; font-size: 14px; line-height: 1.5; color: var(--fg); min-height: 24px; - max-height: min(60vh, 600px); + max-height: 200px; padding: 0; font-family: inherit; transition: height 0.12s ease-out; diff --git a/tests/test_prompt_bar_manual_resize.py b/tests/test_prompt_bar_manual_resize.py deleted file mode 100644 index 5792c13..0000000 --- a/tests/test_prompt_bar_manual_resize.py +++ /dev/null @@ -1,16 +0,0 @@ -from pathlib import Path - - -CSS = Path("static/style.css").read_text(encoding="utf-8") -UI_JS = Path("static/js/ui.js").read_text(encoding="utf-8") - - -def test_prompt_bar_exposes_desktop_resize_handle(): - assert "resize: vertical;" in CSS - assert "max-height: min(60vh, 600px);" in CSS - - -def test_auto_resize_preserves_a_manually_chosen_height(): - assert "textarea._manualResizeHeight = height;" in UI_JS - assert "const manualHeight = textarea._manualResizeHeight || 0;" in UI_JS - assert "const maxHeight = Math.max(autoMaxHeight, manualHeight);" in UI_JS