Commit 49ec292
authored
feat(money): MUSD-827 Money Home design-review polishes (MetaMask#30437)
## **Description**
Applies the seven design-review polishes called out for MUSD-827 on the
Money Account Home surface:
- **Item 1** — `MoneyMusdTokenRow` subtitle on Home now reads
`${balance} • mUSD` instead of just `mUSD`. The row consumes the
existing `useMoneyAccountBalance` hook's `musdFiatFormatted` field
(spendable mUSD only — not the aggregated total).
- **Item 2** — "No MetaMask fee" badge on stables/aTokens rows in the
Earn Crypto section → "No fee".
- **Item 3** — "Convert" button label on per-asset rows in the Earn
Crypto section → "Add". The locale key name stays `convert` so call
sites are untouched.
- **Item 4** — The move-mUSD row in `MoneyAddMoneySheet` is hidden when
the user has no mUSD balance (`totalFiatRaw` non-positive or
unparseable). An unparseable value fails open and keeps the row visible.
- **Item 5** — When that row is shown, its label changes from "Transfer
your $X mUSD" → "Add your $X mUSD". The now-dead `move_musd_no_amount`
key is removed from `en.json`.
- **Item 8** — `MoneyHowItWorksView` description 1 is updated to mention
"curated by Veda and Steakhouse Financial" and to drop the em dash; a
new description 3 paragraph "Money account is powered by Monad." renders
after description 2.
- **Item 10** — The small How-It-Works tile in `MoneyCondensedInfoCards`
swaps `mm_how_it_works.png` for the new green bar-chart icon exported
from Figma (committed separately at the top of the branch as
`c3b1fc37af`).
Items 6, 7, and 9 from the parent design review are intentionally out of
scope (handled by MUSD-824, ticketed separately, and out-of-scope per
design direction respectively).
Only `locales/languages/en.json` is touched — non-English translations
come from the localization pipeline.
## **Changelog**
CHANGELOG entry: Polished the Money Account Home with the spendable mUSD
balance in the token row subtitle, a "No fee" badge and "Add" button on
Earn Crypto rows, a hidden "Add your $X mUSD" entry on the Add money
sheet when the balance is zero, a refreshed "How it works" description
and a new Monad attribution paragraph, and an updated How It Works tile
image.
## **Related issues**
Fixes:
[MUSD-827](https://consensyssoftware.atlassian.net/browse/MUSD-827)
## **Manual testing steps**
```gherkin
Feature: MUSD-827 Money Home design-review polishes
Scenario: mUSD row subtitle on Home
Given the user has a positive mUSD spendable balance
When the user opens the Money tab
Then the mUSD row subtitle reads "$<balance> • mUSD" (e.g. "$1.00 • mUSD")
Scenario: Earn Crypto badge label
Given the user has stablecoin or aToken balances eligible for the Earn Crypto section
When the user scrolls to the Earn Crypto section on Money Home
Then each subsidised-fee row shows the badge "No fee"
And the per-asset action button reads "Add"
Scenario: Add money sheet hides the move-mUSD row when balance is zero
Given the user has $0 spendable mUSD
When the user opens the Add money sheet from the Money Home Add button
Then the sheet shows only "Convert crypto", "Deposit funds", and the disabled "Receive from external wallet" row
And the "Add your $X mUSD" row is not rendered
Scenario: Add money sheet shows the move-mUSD row with positive balance
Given the user has a positive spendable mUSD balance (e.g. $12.34)
When the user opens the Add money sheet from the Money Home Add button
Then the third row reads "Add your $12.34 mUSD"
Scenario: How It Works full screen
Given the user is on the Money tab
When the user opens "How it works"
Then description 1 mentions "curated by Veda and Steakhouse Financial"
And a third paragraph reads "Money account is powered by Monad."
Scenario: How It Works tile image
Given the user is on the Money tab in milestone or empty state
When the user views the condensed info cards row
Then the How-It-Works tile shows the new green bar-chart icon
```
## **Screenshots/Recordings**
### **Before**
### **After**
## **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.
#### Performance checks (if applicable)
- [ ] I've tested on Android
- [ ] I've tested with a power user scenario
- [ ] I've instrumented key operations with Sentry traces for production
performance metrics
## **Pre-merge reviewer checklist**
- [x] I've manually tested the PR (e.g. pull and build branch, run the
app, test code being changed).
- [x] 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.
[MUSD-827]:
https://consensyssoftware.atlassian.net/browse/MUSD-827?atlOrigin=eyJpIjoiNWRkNTljNzYxNjVmNDY3MDlhMDU5Y2ZhYzA5YTRkZjUiLCJwIjoiZ2l0aHViLWNvbS1KU1cifQ
<!-- CURSOR_SUMMARY -->
---
> [!NOTE]
> **Medium Risk**
> Primarily UI copy/label updates, but it also changes when the Add
Money sheet shows the mUSD move/add option based on parsed balances,
which could hide a user action if balance/rates are miscomputed.
>
> **Overview**
> Polishes Money surfaces around mUSD and Earn Crypto CTAs: the Money
Home mUSD row now displays a formatted spendable balance in its subtitle
(via `useMusdBalance`), and per-token Earn Crypto actions/badges switch
to **“Add”** and **“No fee”**.
>
> Updates the Add Money sheet to source balances from `useMusdBalance`,
**hide the mUSD move/add row when the user has no balance**, and format
the label as **“Add your {amount} mUSD”** (falling back to token amount
when fiat rates are unavailable). The How It Works screen copy is
refreshed and adds a third description paragraph attributing Monad;
tests and `en.json` strings are updated accordingly.
>
> <sup>Reviewed by [Cursor Bugbot](https://cursor.com/bugbot) for commit
c2ea309. Bugbot is set up for automated
code reviews on this repo. Configure
[here](https://www.cursor.com/dashboard/bugbot).</sup>
<!-- /CURSOR_SUMMARY -->1 parent 8c73d92 commit 49ec292
14 files changed
Lines changed: 245 additions & 86 deletions
File tree
- app
- components/UI/Money
- Views
- MoneyHomeView
- MoneyHowItWorksView
- components
- MoneyAddMoneySheet
- MoneyMusdTokenRow
- MoneyPotentialEarnings
- images
- locales/languages
Lines changed: 37 additions & 5 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | | - | |
| 2 | + | |
3 | 3 | | |
4 | 4 | | |
5 | 5 | | |
| |||
28 | 28 | | |
29 | 29 | | |
30 | 30 | | |
| 31 | + | |
31 | 32 | | |
32 | 33 | | |
33 | 34 | | |
| |||
83 | 84 | | |
84 | 85 | | |
85 | 86 | | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
86 | 91 | | |
87 | 92 | | |
88 | 93 | | |
| |||
124 | 129 | | |
125 | 130 | | |
126 | 131 | | |
| 132 | + | |
| 133 | + | |
127 | 134 | | |
128 | 135 | | |
129 | 136 | | |
| |||
227 | 234 | | |
228 | 235 | | |
229 | 236 | | |
| 237 | + | |
| 238 | + | |
| 239 | + | |
| 240 | + | |
| 241 | + | |
| 242 | + | |
| 243 | + | |
| 244 | + | |
| 245 | + | |
| 246 | + | |
| 247 | + | |
230 | 248 | | |
231 | 249 | | |
232 | 250 | | |
| |||
883 | 901 | | |
884 | 902 | | |
885 | 903 | | |
886 | | - | |
| 904 | + | |
887 | 905 | | |
888 | | - | |
| 906 | + | |
| 907 | + | |
| 908 | + | |
| 909 | + | |
| 910 | + | |
| 911 | + | |
| 912 | + | |
| 913 | + | |
889 | 914 | | |
890 | 915 | | |
891 | 916 | | |
| |||
902 | 927 | | |
903 | 928 | | |
904 | 929 | | |
905 | | - | |
| 930 | + | |
906 | 931 | | |
907 | | - | |
| 932 | + | |
| 933 | + | |
| 934 | + | |
| 935 | + | |
| 936 | + | |
| 937 | + | |
| 938 | + | |
| 939 | + | |
908 | 940 | | |
909 | 941 | | |
910 | 942 | | |
| |||
Lines changed: 4 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
25 | 25 | | |
26 | 26 | | |
27 | 27 | | |
| 28 | + | |
28 | 29 | | |
29 | 30 | | |
30 | 31 | | |
| |||
64 | 65 | | |
65 | 66 | | |
66 | 67 | | |
| 68 | + | |
| 69 | + | |
67 | 70 | | |
68 | 71 | | |
69 | 72 | | |
| |||
293 | 296 | | |
294 | 297 | | |
295 | 298 | | |
| 299 | + | |
296 | 300 | | |
297 | 301 | | |
298 | 302 | | |
| |||
Lines changed: 13 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
38 | 38 | | |
39 | 39 | | |
40 | 40 | | |
| 41 | + | |
| 42 | + | |
41 | 43 | | |
42 | 44 | | |
43 | 45 | | |
| |||
86 | 88 | | |
87 | 89 | | |
88 | 90 | | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
89 | 102 | | |
90 | 103 | | |
91 | 104 | | |
| |||
Lines changed: 1 addition & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
6 | 6 | | |
7 | 7 | | |
8 | 8 | | |
| 9 | + | |
9 | 10 | | |
10 | 11 | | |
11 | 12 | | |
Lines changed: 7 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
184 | 184 | | |
185 | 185 | | |
186 | 186 | | |
| 187 | + | |
| 188 | + | |
| 189 | + | |
| 190 | + | |
| 191 | + | |
| 192 | + | |
| 193 | + | |
187 | 194 | | |
188 | 195 | | |
189 | 196 | | |
| |||
Lines changed: 77 additions & 15 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
5 | 5 | | |
6 | 6 | | |
7 | 7 | | |
8 | | - | |
| 8 | + | |
9 | 9 | | |
10 | 10 | | |
11 | 11 | | |
| |||
38 | 38 | | |
39 | 39 | | |
40 | 40 | | |
41 | | - | |
42 | | - | |
43 | | - | |
| 41 | + | |
| 42 | + | |
44 | 43 | | |
45 | 44 | | |
46 | 45 | | |
| |||
87 | 86 | | |
88 | 87 | | |
89 | 88 | | |
90 | | - | |
91 | | - | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
92 | 94 | | |
93 | 95 | | |
94 | 96 | | |
| |||
102 | 104 | | |
103 | 105 | | |
104 | 106 | | |
105 | | - | |
| 107 | + | |
106 | 108 | | |
107 | 109 | | |
108 | 110 | | |
| |||
139 | 141 | | |
140 | 142 | | |
141 | 143 | | |
142 | | - | |
143 | | - | |
| 144 | + | |
| 145 | + | |
| 146 | + | |
| 147 | + | |
| 148 | + | |
144 | 149 | | |
145 | 150 | | |
146 | 151 | | |
147 | | - | |
| 152 | + | |
148 | 153 | | |
149 | 154 | | |
150 | | - | |
151 | | - | |
152 | | - | |
| 155 | + | |
| 156 | + | |
| 157 | + | |
| 158 | + | |
| 159 | + | |
| 160 | + | |
153 | 161 | | |
154 | | - | |
155 | 162 | | |
156 | | - | |
| 163 | + | |
| 164 | + | |
| 165 | + | |
| 166 | + | |
| 167 | + | |
| 168 | + | |
| 169 | + | |
| 170 | + | |
| 171 | + | |
| 172 | + | |
| 173 | + | |
| 174 | + | |
| 175 | + | |
| 176 | + | |
| 177 | + | |
| 178 | + | |
| 179 | + | |
| 180 | + | |
| 181 | + | |
| 182 | + | |
| 183 | + | |
| 184 | + | |
| 185 | + | |
| 186 | + | |
| 187 | + | |
| 188 | + | |
| 189 | + | |
| 190 | + | |
| 191 | + | |
| 192 | + | |
| 193 | + | |
| 194 | + | |
| 195 | + | |
| 196 | + | |
| 197 | + | |
| 198 | + | |
| 199 | + | |
| 200 | + | |
| 201 | + | |
| 202 | + | |
| 203 | + | |
| 204 | + | |
| 205 | + | |
| 206 | + | |
| 207 | + | |
| 208 | + | |
| 209 | + | |
| 210 | + | |
| 211 | + | |
| 212 | + | |
| 213 | + | |
| 214 | + | |
| 215 | + | |
| 216 | + | |
| 217 | + | |
| 218 | + | |
157 | 219 | | |
158 | 220 | | |
159 | 221 | | |
| |||
Lines changed: 34 additions & 19 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
3 | 3 | | |
| 4 | + | |
4 | 5 | | |
5 | 6 | | |
6 | 7 | | |
| |||
18 | 19 | | |
19 | 20 | | |
20 | 21 | | |
21 | | - | |
| 22 | + | |
22 | 23 | | |
23 | 24 | | |
24 | 25 | | |
| |||
42 | 43 | | |
43 | 44 | | |
44 | 45 | | |
45 | | - | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
46 | 52 | | |
47 | 53 | | |
48 | 54 | | |
| |||
79 | 85 | | |
80 | 86 | | |
81 | 87 | | |
82 | | - | |
83 | | - | |
84 | | - | |
85 | | - | |
86 | | - | |
87 | | - | |
88 | | - | |
89 | | - | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
90 | 99 | | |
91 | | - | |
| 100 | + | |
92 | 101 | | |
93 | 102 | | |
94 | 103 | | |
| |||
105 | 114 | | |
106 | 115 | | |
107 | 116 | | |
108 | | - | |
109 | | - | |
110 | | - | |
111 | | - | |
112 | | - | |
113 | | - | |
114 | | - | |
115 | | - | |
116 | 117 | | |
117 | 118 | | |
| 119 | + | |
| 120 | + | |
| 121 | + | |
| 122 | + | |
| 123 | + | |
| 124 | + | |
| 125 | + | |
| 126 | + | |
| 127 | + | |
| 128 | + | |
| 129 | + | |
| 130 | + | |
| 131 | + | |
| 132 | + | |
118 | 133 | | |
119 | 134 | | |
120 | 135 | | |
| |||
0 commit comments