feat(composer): textarea + send button + retry on failure #41

Merged
nrupard merged 1 commit from feat/composer-multiline into main 2026-05-06 17:03:00 +02:00
Owner
  • Convert the room and thread reply composers from a single-line <input> to an auto-growing <textarea>. Enter sends, Shift+Enter inserts a newline, and event.isComposing is checked so IME composition does not submit early.
  • Add a visible Send icon button at the right edge of each composer. It stays disabled while the textarea is empty so users on touch keyboards (which often hide the return key) have an explicit submit affordance.
  • Replace the previous clear-on-before-request with a clear-on-success path. On failure an inline "Could not send. Retry" banner appears and the typed text is preserved so the user can resubmit.
  • No backend change is required: bodies are already inserted verbatim and room/message.html renders them with whitespace-pre-wrap.

Co-Authored-By: Claude Opus 4.7 (1M context) noreply@anthropic.com

- Convert the room and thread reply composers from a single-line `<input>` to an auto-growing `<textarea>`. Enter sends, Shift+Enter inserts a newline, and `event.isComposing` is checked so IME composition does not submit early. - Add a visible Send icon button at the right edge of each composer. It stays disabled while the textarea is empty so users on touch keyboards (which often hide the return key) have an explicit submit affordance. - Replace the previous clear-on-before-request with a clear-on-success path. On failure an inline "Could not send. Retry" banner appears and the typed text is preserved so the user can resubmit. - No backend change is required: bodies are already inserted verbatim and `room/message.html` renders them with `whitespace-pre-wrap`. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
- Convert the room and thread reply composers from a single-line `<input>` to an auto-growing `<textarea>`. Enter sends, Shift+Enter inserts a newline, and `event.isComposing` is checked so IME composition does not submit early.
- Add a visible Send icon button at the right edge of each composer. It stays disabled while the textarea is empty so users on touch keyboards (which often hide the return key) have an explicit submit affordance.
- Replace the previous clear-on-before-request with a clear-on-success path. On failure an inline "Could not send. Retry" banner appears and the typed text is preserved so the user can resubmit.
- No backend change is required: bodies are already inserted verbatim and `room/message.html` renders them with `whitespace-pre-wrap`.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
nrupard deleted branch feat/composer-multiline 2026-05-06 17:03:00 +02:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
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
psa-systems/lets-chat!41
No description provided.