fix(dashboard): lock ChatView composer with touch-action: none on textarea

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) <noreply@anthropic.com>
This commit is contained in:
gsxdsm
2026-05-06 21:02:22 -07:00
parent 4708e453ae
commit ec119677de

View File

@@ -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;
}