Commit b3e0a64
authored
fix(card): UI issues on Authentication/Delegation (MetaMask#22352)
<!--
Please submit this PR as a draft initially.
Do not mark it as "Ready for review" until the template has been
completely filled out, and PR status checks have passed at least once.
-->
## **Description**
<!--
Write a short description of the changes included in this pull request,
also include relevant motivation and context. Have in mind the following
questions:
1. What is the reason for the change?
2. What is the improvement/solution?
-->
This PR fixes several issues affecting the Card feature to improve
stability and UI consistency:
- Fixed negative allowance values displayed on CardHome
- Fixed token priority not updating correctly after delegation
- Fixed text clipping in the Asset BottomSheet
- Ensured all addresses are properly checksummed
- Fixed BottomSheet layering issue where it appeared below the header
## **Changelog**
<!--
If this PR is not End-User-Facing and should not show up in the
CHANGELOG, you can choose to either:
1. Write `CHANGELOG entry: null`
2. Label with `no-changelog`
If this PR is End-User-Facing, please write a short User-Facing
description in the past tense like:
`CHANGELOG entry: Added a new tab for users to see their NFTs`
`CHANGELOG entry: Fixed a bug that was causing some NFTs to flicker`
(This helps the Release Engineer do their job more quickly and
accurately)
-->
CHANGELOG entry: Negative allowance values displayed on CardHome
CHANGELOG entry: Token priority not updating after delegation
CHANGELOG entry: Text clipping in Asset BottomSheet
CHANGELOG entry: Missing address checksum formatting
CHANGELOG entry: BottomSheet not appearing above header
## **Related issues**
Fixes:
## **Manual testing steps**
```gherkin
Feature: my feature name
Scenario: user [verb for user action]
Given [describe expected initial app state]
When user [verb for user action]
Then [describe expected outcome]
```
## **Screenshots/Recordings**
<!-- If applicable, add screenshots and/or recordings to visualize the
before and after of your change. -->
### **Before**
<!-- [screenshots/recordings] -->
### **After**
<!-- [screenshots/recordings] -->
## **Pre-merge author checklist**
- [x] I’ve followed [MetaMask Contributor
Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask Mobile
Coding
Standards](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/CODING_GUIDELINES.md).
- [x] I've completed the PR template to the best of my ability
- [x] I’ve included tests if applicable
- [x] I’ve documented my code using [JSDoc](https://jsdoc.app/) format
if applicable
- [x] I’ve applied the right labels on the PR (see [labeling
guidelines](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/LABELING_GUIDELINES.md)).
Not required for external contributors.
## **Pre-merge reviewer checklist**
- [ ] I've manually tested the PR (e.g. pull and build branch, run the
app, test code being changed).
- [ ] I confirm that this PR addresses all acceptance criteria described
in the ticket it closes and includes the necessary testing evidence such
as recordings and or screenshots.
<!-- CURSOR_SUMMARY -->
---
> [!NOTE]
> Moves add-funds and asset-selection to dedicated modal routes, adds a
spending limit progress bar with latest-allowance fetching, improves OTP
error UX, and introduces a reusable priority-update hook.
>
> - **Navigation/Architecture**:
> - Add `CardModals` stack with `CardAddFundsModal` and
`CardAssetSelectionModal`; migrate CardHome/SpendingLimit to navigate to
these modals.
> - **CardHome**:
> - Replace inline bottom sheets with modal navigation for Add Funds and
Asset Selection.
> - Add Spending Limit progress bar (with skeleton) when
`AllowanceState.Limited`; hide for unsupported tokens (e.g., `aUSDC`).
> - Gate "close to limit" warning by token support; minor style
additions.
> - **SpendingLimit**:
> - Open Asset Selection as a modal (selection-only flow returning via
`callerRoute`).
> - Block back navigation while delegating; update token priority after
successful delegation; clear cache when needed.
> - **Bottom Sheets**:
> - Refactor `AddFundsBottomSheet` and `AssetSelectionBottomSheet` to
modal components using `navUtils` params; show balances, filter by
network/location; close-on-navigate behavior.
> - **Hooks**:
> - New `useUpdateTokenPriority` to reorder wallet priorities and update
Redux/cache.
> - New `useGetLatestAllowanceForPriorityToken` to read latest approval
from logs; integrated in `useLoadCardData` to populate `totalAllowance`.
> - `useAssetBalances`: improved fiat fallbacks and proportional/zero
handling.
> - `useGetCardExternalWalletDetails`: stop bulk `totalAllowance` fetch;
map details without it.
> - **SDK**:
> - Implement `getLatestAllowanceFromLogs` (ethers log scan); make some
helpers sync; include tenant ID in `createOnboardingConsent` using API
key.
> - **Auth UX**:
> - OTP error shown below fields; clear on input; tests updated.
> - **Utils**:
> - `truncateAddress` now checksums hex addresses.
> - **Tests**:
> - Extensive updates/new tests across views, hooks, SDK, and
components.
>
> <sup>Written by [Cursor
Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit
327555d. This will update automatically
on new commits. Configure
[here](https://cursor.com/dashboard?tab=bugbot).</sup>
<!-- /CURSOR_SUMMARY -->1 parent 0954f71 commit b3e0a64
40 files changed
Lines changed: 3273 additions & 1018 deletions
File tree
- app
- components/UI/Card
- Views
- CardAuthentication
- CardHome
- SpendingLimit
- components
- AddFundsBottomSheet
- AssetSelectionBottomSheet
- SpendingLimitProgressBar
- hooks
- routes
- sdk
- util
- e2e/selectors/Card
Lines changed: 105 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
| 2 | + | |
2 | 3 | | |
3 | 4 | | |
4 | 5 | | |
| |||
973 | 974 | | |
974 | 975 | | |
975 | 976 | | |
| 977 | + | |
| 978 | + | |
| 979 | + | |
| 980 | + | |
| 981 | + | |
| 982 | + | |
| 983 | + | |
| 984 | + | |
| 985 | + | |
| 986 | + | |
| 987 | + | |
| 988 | + | |
| 989 | + | |
| 990 | + | |
| 991 | + | |
| 992 | + | |
| 993 | + | |
| 994 | + | |
| 995 | + | |
| 996 | + | |
| 997 | + | |
| 998 | + | |
| 999 | + | |
| 1000 | + | |
| 1001 | + | |
| 1002 | + | |
| 1003 | + | |
| 1004 | + | |
| 1005 | + | |
| 1006 | + | |
| 1007 | + | |
| 1008 | + | |
| 1009 | + | |
| 1010 | + | |
| 1011 | + | |
| 1012 | + | |
| 1013 | + | |
| 1014 | + | |
| 1015 | + | |
| 1016 | + | |
| 1017 | + | |
| 1018 | + | |
| 1019 | + | |
| 1020 | + | |
976 | 1021 | | |
977 | 1022 | | |
978 | 1023 | | |
| |||
1002 | 1047 | | |
1003 | 1048 | | |
1004 | 1049 | | |
| 1050 | + | |
| 1051 | + | |
| 1052 | + | |
| 1053 | + | |
| 1054 | + | |
| 1055 | + | |
| 1056 | + | |
| 1057 | + | |
| 1058 | + | |
| 1059 | + | |
| 1060 | + | |
| 1061 | + | |
| 1062 | + | |
| 1063 | + | |
| 1064 | + | |
| 1065 | + | |
| 1066 | + | |
| 1067 | + | |
| 1068 | + | |
| 1069 | + | |
| 1070 | + | |
| 1071 | + | |
| 1072 | + | |
| 1073 | + | |
| 1074 | + | |
| 1075 | + | |
| 1076 | + | |
| 1077 | + | |
| 1078 | + | |
| 1079 | + | |
| 1080 | + | |
| 1081 | + | |
| 1082 | + | |
| 1083 | + | |
| 1084 | + | |
| 1085 | + | |
| 1086 | + | |
| 1087 | + | |
| 1088 | + | |
| 1089 | + | |
| 1090 | + | |
| 1091 | + | |
| 1092 | + | |
| 1093 | + | |
| 1094 | + | |
| 1095 | + | |
| 1096 | + | |
| 1097 | + | |
| 1098 | + | |
| 1099 | + | |
| 1100 | + | |
| 1101 | + | |
| 1102 | + | |
| 1103 | + | |
| 1104 | + | |
| 1105 | + | |
| 1106 | + | |
| 1107 | + | |
| 1108 | + | |
| 1109 | + | |
1005 | 1110 | | |
1006 | 1111 | | |
1007 | 1112 | | |
| |||
Lines changed: 10 additions & 10 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
388 | 388 | | |
389 | 389 | | |
390 | 390 | | |
| 391 | + | |
| 392 | + | |
| 393 | + | |
| 394 | + | |
| 395 | + | |
| 396 | + | |
| 397 | + | |
| 398 | + | |
| 399 | + | |
| 400 | + | |
391 | 401 | | |
392 | 402 | | |
393 | 403 | | |
| |||
413 | 423 | | |
414 | 424 | | |
415 | 425 | | |
416 | | - | |
417 | | - | |
418 | | - | |
419 | | - | |
420 | | - | |
421 | | - | |
422 | | - | |
423 | | - | |
424 | | - | |
425 | | - | |
426 | 426 | | |
427 | 427 | | |
428 | 428 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
40 | 40 | | |
41 | 41 | | |
42 | 42 | | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
43 | 46 | | |
44 | 47 | | |
45 | 48 | | |
| |||
0 commit comments