Keep mobile conversation replies visible above the keyboard #323

Closed
opened 2026-08-08 17:29:39 +00:00 by timmy · 0 comments
Owner

Problem

On phone-sized screens, focusing the issue, pull-request, or unread-update reply composer leaves the full-height sheet unaware of the software keyboard. The textarea, submit control, and delivery/error status can be obscured. The existing visualViewport controller only covers command search.

Evidence on current main: frontend/index.html defines all three composers; frontend/dashboard.css uses full-height independently scrolling sheets with sticky action regions; frontend/dashboard.js refocuses failed composers without revealing their controls; no historical issue or recent commit covers conversation composers (keyboard work #317 is search-only).

Acceptance criteria

  • On mobile, focusing any of the three conversation textareas sizes and positions its sheet panel from visualViewport.
  • The composer, submit action, and live status are revealed inside the keyboard-reduced viewport after focus, resize, validation failure, or retry.
  • Viewport listeners are attached once, detached on blur/close, and temporary geometry is cleared.
  • Dismissing the keyboard restores prior sheet scroll without changing draft text.
  • Browsers without visualViewport and desktop layouts retain current behavior.
  • The offline shell contains every local runtime asset referenced by the dashboard, including this controller and task-overlay history, with an invariant test preventing drift.
  • Focused tests and the full suite pass.
## Problem On phone-sized screens, focusing the issue, pull-request, or unread-update reply composer leaves the full-height sheet unaware of the software keyboard. The textarea, submit control, and delivery/error status can be obscured. The existing visualViewport controller only covers command search. Evidence on current main: `frontend/index.html` defines all three composers; `frontend/dashboard.css` uses full-height independently scrolling sheets with sticky action regions; `frontend/dashboard.js` refocuses failed composers without revealing their controls; no historical issue or recent commit covers conversation composers (keyboard work #317 is search-only). ## Acceptance criteria - On mobile, focusing any of the three conversation textareas sizes and positions its sheet panel from `visualViewport`. - The composer, submit action, and live status are revealed inside the keyboard-reduced viewport after focus, resize, validation failure, or retry. - Viewport listeners are attached once, detached on blur/close, and temporary geometry is cleared. - Dismissing the keyboard restores prior sheet scroll without changing draft text. - Browsers without `visualViewport` and desktop layouts retain current behavior. - The offline shell contains every local runtime asset referenced by the dashboard, including this controller and task-overlay history, with an invariant test preventing drift. - Focused tests and the full suite pass.
timmy self-assigned this 2026-08-08 17:29:39 +00:00
timmy closed this issue 2026-08-08 17:35:30 +00:00
Sign in to join this conversation.
No Milestone
No project
No Assignees
1 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: stackchain/stackchain-dashboard#323
No description provided.