From 592c61ff12c31a9c80a9e406a912cf7569d7e67b Mon Sep 17 00:00:00 2001 From: gsxdsm Date: Wed, 6 May 2026 21:02:22 -0700 Subject: [PATCH] fix(dashboard): lock ChatView composer with touch-action: none on textarea MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit A pan-y gesture on the focused textarea still triggered iOS auto- scroll-into-view, lifting the composer up off-screen even with body locked. touch-action: none on .chat-input-textarea blocks gesture- driven panning entirely (tap-to-focus, typing, caret moves still work) so the composer stays anchored. Trade-off: loses gesture- scroll within the textarea once content exceeds max-height — minor since textareas rarely exceed 6 lines in this composer. Co-Authored-By: Claude Opus 4.7 (1M context) --- packages/dashboard/app/components/ChatView.css | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/packages/dashboard/app/components/ChatView.css b/packages/dashboard/app/components/ChatView.css index 7f1888ebc..66c851477 100644 --- a/packages/dashboard/app/components/ChatView.css +++ b/packages/dashboard/app/components/ChatView.css @@ -848,11 +848,14 @@ line-height: 1.4; max-height: 120px; min-height: 40px; - /* iOS: a vertical swipe started on the textarea otherwise rubber-bands - the document, momentarily exposing the body background. pan-y keeps - internal multi-line scroll usable while preventing the gesture from - escaping to the page. */ - touch-action: pan-y; + /* iOS: any pan-y gesture on the textarea (including pan-y itself) + can drive an auto-scroll-into-view that lifts the composer up + off-screen even with body locked. touch-action: none blocks + gesture-driven panning while keeping tap-to-focus and typing + intact. Trade-off: loses gesture scroll within the textarea once + content exceeds max-height (~6 lines); arrow keys / caret moves + still work. */ + touch-action: none; overscroll-behavior: contain; }