feat(tips): tip-chat keyboard on open + tip-only minimized send button - #1165
Merged
Conversation
PR #1075 replaced the userState (Reading/Typing) model with the always-visible input and, in doing so, turned OnStartMessageInput into a no-op and dropped the focusRequester.requestFocus() call. The event was still dispatched on return from amount entry, but nothing acted on it, so the keyboard no longer reopened after sending cash from within a chat. Restore it with a transient State.messageInputRequested signal: OnStartMessageInput sets it, and the bottom bar — co-located with the ChatInput so the focusRequester is attached — focuses the field, shows the keyboard, and dispatches OnMessageInputConsumed to clear it. State (not a one-shot event) is used because eventFlow is replay-0, so a request raised at open would be missed before the bar subscribes.
After completing a tip from the tip card, hand off into the chat with the message input focused, matching the keyboard-open state you land on when returning from amount entry. A new openKeyboard flag on the Chat route (default false) is set only by the post-tip navigation; ChatFlowScreen dispatches OnStartMessageInput once on open when it is set. Normal opens (tips list, deeplinks, contact DMs) stay keyboard-closed.
Tip chats always show the compact dark symbol-only send button. The normal send flow keeps the expanded "Send $" presentation and only collapses to the symbol once the user starts typing.
origin/HEAD was unset, so tooling defaulted the base branch to a non-existent `main`. Note explicitly that code/cash is the only main branch and that PRs target it.
This was referenced Jul 27, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What & why
Two tip-chat UX changes, plus a keyboard regression fix they surfaced.
1. Reopen the keyboard on message input (regression fix)
#1075replaced theuserState(Reading/Typing) model with the always-visible input and, in the process, turnedOnStartMessageInputinto a no-op and dropped thefocusRequester.requestFocus()call. The event was still dispatched when returning from amount entry, but nothing acted on it — so the keyboard stopped reopening after sending cash from within a chat.Restored via a transient
State.messageInputRequestedsignal:OnStartMessageInputsets it; the bottom bar (co-located withChatInput, so thefocusRequesteris attached) focuses the field, shows the keyboard, and dispatchesOnMessageInputConsumedto clear it. It is state rather than a one-shot event becauseeventFlowis replay-0 — a request raised at open would be missed before the bar subscribes.2. Open post-tip chats with the keyboard up
After completing a tip from the tip card, the chat now opens with the message input focused (same feel as returning from amount entry). A new
openKeyboardflag on theChatroute (defaultfalse) is set only by the post-tip navigation (TipCardDecorator). Normal opens — tips list, deeplinks/notifications, contact DMs — stay keyboard-closed.3. Minimized send button, tip chats only
Tip chats always show the compact dark symbol-only send button. The normal send flow keeps the expanded "Send $" presentation and only collapses to the symbol once the user starts typing.
Housekeeping
docs: clarified thatcode/cashis the only main branch (repoorigin/HEADwas unset, so tooling defaulted to a non-existentmain).Testing
:messengerand:scannercompile clean.