fix: block numberpad input exceeding max amount#908
Draft
Conversation
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
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.
Follow-up to #870 (merged) that capped onchain send validation. That PR disabled the Continue button when an amount exceeded the balance, but users could still type whatever they wanted with no explanation of why the button was disabled — poor UX.
Description
Prevents users from entering amounts above the allowed maximum on numberpad screens, using the same pattern as the React Native app:
Applied to three screens that all suffered from the same "disabled button with no feedback" problem:
availableAmountmaxAllowedToSend(accounts for LSP fees)transferValues.maxLspBalanceImplementation
maxAmountfield (defaults toMAX_AMOUNT) andsetMaxAmount()setter toAmountInputViewModelAmountInputEffect.MaxExceededone-shot event viaSharedFlowso screens can show a toastsetMaxAmount(limit)viaLaunchedEffectso the limit stays in sync as fees/balances updateMaxExceededis only emitted when a dynamic limit is set (not on the global 999M sats cap)Toast.VISIBILITY_TIME_SHORT = 1500LconstantQA Notes
Send (onchain)
Send (lightning)
Transfer to Spending
maxAllowedToSendReceiving Capacity (Advanced)
maxLspBalanceEdge cases
🤖 Generated with Claude Code