Commit 1de00bb
authored
feat(money): Money Hub polish bundle (MUSD-728/729/730/731/732/733) (#29548)
## **Description**
Bundles six small Money Hub UX changes:
- **MUSD-728** — Drop the inline **Learn more** CTA from
`MoneyConvertStablecoins`. The Convert section ends after the feature
tags / per-token rows; only the primary action remains.
- **MUSD-729** — Money Hub balance heading reads **Your balance**
(replacing the duplicate "Money" inline title; the page header still
shows "Money"). Standalone "3% bonus" label removed from mUSD rows in
the homepage token list — the row falls back to the standard percentage
rail when there's no Convert CTA.
- **MUSD-730** — `AssetOverviewClaimBonus` claim button switches from
primary to **secondary** styling (no logic change).
- **MUSD-731** — No code change required: the existing
`MUSD_CONVERSION_APY` constant already drives every "3%" surface
consistently. No outdated/conflicting variants remain.
- **MUSD-732** — Five-item checklist (`Dollar-backed`, `No lockups`,
`Daily bonus`, `MetaMask stablecoins`, `No MetaMask fee`) added to the
**Get 3% on stablecoins** education splash with green checkmarks.
- **MUSD-733** — Mounts the Convert section on the mUSD asset detail
page via a new `AssetOverviewConvertSection` wrapper that reuses
`MoneyConvertStablecoins`. The component already supports the three
target states (no-mUSD informational, has-mUSD with stablecoins
per-token rows, has-mUSD without stablecoins informational). The
secondary claim CTA from MUSD-730 covers the claim-styling requirement.
## **Changelog**
CHANGELOG entry: null
## **Related issues**
Fixes:
[MUSD-728](https://consensyssoftware.atlassian.net/browse/MUSD-728),
[MUSD-729](https://consensyssoftware.atlassian.net/browse/MUSD-729),
[MUSD-730](https://consensyssoftware.atlassian.net/browse/MUSD-730),
[MUSD-731](https://consensyssoftware.atlassian.net/browse/MUSD-731),
[MUSD-732](https://consensyssoftware.atlassian.net/browse/MUSD-732),
[MUSD-733](https://consensyssoftware.atlassian.net/browse/MUSD-733)
## **Manual testing steps**
```gherkin
Feature: Money Hub polish
Scenario: Money Hub Convert section (MUSD-728)
Given I open the Money Hub
Then the Convert to mUSD section ends after the feature tags or per-token rows
And no "Learn more" button is rendered
Scenario: Money Hub balance heading (MUSD-729)
Given I open the Money Hub
Then the balance section heading reads "Your balance"
Scenario: mUSD token row label (MUSD-729)
Given I view the wallet token list with mUSD on Mainnet/Linea
Then the mUSD row no longer renders the green "3% bonus" label
And the row falls back to the standard percentage rail when no Convert CTA applies
Scenario: Asset detail claim button (MUSD-730)
Given I open the mUSD asset detail page with a claimable bonus
Then the "Claim" button uses secondary button styling
Scenario: Education splash checklist (MUSD-732)
Given I view the "Get 3% on stablecoins" education splash
Then I see a checklist with: Dollar-backed, No lockups, Daily bonus, MetaMask stablecoins, No MetaMask fee
And each item shows a green check icon
Scenario: Asset detail Convert module (MUSD-733)
Given I open the mUSD asset detail page
And mUSD conversion is enabled and I am geo-eligible
Then a Convert section renders below the claim card
And it shows per-token rows for any eligible stablecoins, or the empty/info layout otherwise
```
## **Screenshots/Recordings**
<img width="1206" height="2622" alt="image"
src="https://github.com/user-attachments/assets/474cfcf1-d538-43c7-b798-4ca060fa1a88"
/>
<img width="1206" height="2622" alt="image"
src="https://github.com/user-attachments/assets/82ee004e-40c1-4972-bf93-f6ca44822150"
/>
<img width="1206" height="2622" alt="image"
src="https://github.com/user-attachments/assets/c7ae2bd0-cf04-4475-826a-806498a33a92"
/>
## **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
- [ ] 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-728]:
https://consensyssoftware.atlassian.net/browse/MUSD-728?atlOrigin=eyJpIjoiNWRkNTljNzYxNjVmNDY3MDlhMDU5Y2ZhYzA5YTRkZjUiLCJwIjoiZ2l0aHViLWNvbS1KU1cifQ
<!-- CURSOR_SUMMARY -->
---
> [!NOTE]
> **Medium Risk**
> Moderate risk: refactors conversion UI wiring and token list rendering
paths (including a new compact mUSD layout and new analytics
events/locations), which could affect navigation and tracking if
misconfigured.
>
> **Overview**
> **Money Hub UX polish for mUSD conversion and balances.** The Convert
section (`MoneyConvertStablecoins`) is simplified by removing the inline
*Learn more* CTA and now self-manages token fetching plus conversion
initiation, emitting `MONEY_HUB_TOKEN_ROW_CONVERT_CLICKED` analytics
with a passed-in `location`.
>
> **mUSD balance presentation is adjusted across Money surfaces.**
`CashTokensFullView` adds a **"Your balance"** heading when Money Hub is
enabled, introduces a new `MoneyMusdEmptyBalanceRow` for the
zero-balance state, and passes a new `hideSecondaryPriceRow` flag
through `Tokens`/`TokenList` to render a compact mUSD row without the
price/percentage rail. Separately, mUSD token list items no longer show
the standalone green `"3% bonus"` secondary label.
>
> **Other small UI/text tweaks.** `AssetOverviewClaimBonus` switches its
CTA button to `Secondary` styling and removes the leading `+` from the
estimated annual bonus display; the mUSD education screen is redesigned
to use design-system components, adds a 5-item checklist, and removes
the external “Terms apply” link while updating the education copy and
i18n keys (cash → money, new checklist strings, new
`money.your_balance`).
>
> <sup>Reviewed by [Cursor Bugbot](https://cursor.com/bugbot) for commit
6696fdc. Bugbot is set up for automated
code reviews on this repo. Configure
[here](https://www.cursor.com/dashboard/bugbot).</sup>
<!-- /CURSOR_SUMMARY -->1 parent 0b6a6a0 commit 1de00bb
30 files changed
Lines changed: 860 additions & 490 deletions
File tree
- app
- components
- UI
- Earn
- Views/EarnMusdConversionEducationView
- components/AssetOverviewClaimBonus
- Money
- components
- MoneyBalanceCard
- MoneyBalanceSummary
- MoneyConvertStablecoins
- MoneyMusdEmptyBalanceRow
- constants
- TokenDetails/components
- Tokens
- TokenList
- TokenListItem
- Views
- CashTokensFullView
- Homepage/Sections/Cash
- core/Analytics
- locales/languages
Lines changed: 0 additions & 42 deletions
This file was deleted.
Lines changed: 3 additions & 3 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
58 | 58 | | |
59 | 59 | | |
60 | 60 | | |
61 | | - | |
| 61 | + | |
62 | 62 | | |
63 | 63 | | |
64 | 64 | | |
| |||
391 | 391 | | |
392 | 392 | | |
393 | 393 | | |
394 | | - | |
| 394 | + | |
395 | 395 | | |
396 | 396 | | |
397 | | - | |
| 397 | + | |
398 | 398 | | |
399 | 399 | | |
400 | 400 | | |
| |||
Lines changed: 0 additions & 42 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
3 | 3 | | |
4 | 4 | | |
5 | 5 | | |
6 | | - | |
7 | 6 | | |
8 | 7 | | |
9 | 8 | | |
| |||
20 | 19 | | |
21 | 20 | | |
22 | 21 | | |
23 | | - | |
24 | 22 | | |
25 | 23 | | |
26 | 24 | | |
| |||
262 | 260 | | |
263 | 261 | | |
264 | 262 | | |
265 | | - | |
266 | | - | |
267 | | - | |
268 | 263 | | |
269 | 264 | | |
270 | 265 | | |
| |||
934 | 929 | | |
935 | 930 | | |
936 | 931 | | |
937 | | - | |
938 | | - | |
939 | | - | |
940 | | - | |
941 | | - | |
942 | | - | |
943 | | - | |
944 | | - | |
945 | | - | |
946 | | - | |
947 | | - | |
948 | | - | |
949 | | - | |
950 | | - | |
951 | | - | |
952 | | - | |
953 | | - | |
954 | | - | |
955 | | - | |
956 | | - | |
957 | | - | |
958 | | - | |
959 | | - | |
960 | | - | |
961 | | - | |
962 | | - | |
963 | | - | |
964 | | - | |
965 | | - | |
966 | | - | |
967 | | - | |
968 | | - | |
969 | | - | |
970 | | - | |
971 | | - | |
972 | | - | |
973 | | - | |
974 | 932 | | |
975 | 933 | | |
976 | 934 | | |
| |||
Lines changed: 101 additions & 55 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
3 | 3 | | |
4 | | - | |
| 4 | + | |
5 | 5 | | |
6 | 6 | | |
7 | | - | |
8 | | - | |
9 | | - | |
10 | | - | |
11 | | - | |
12 | | - | |
13 | | - | |
14 | | - | |
15 | | - | |
16 | | - | |
17 | 7 | | |
18 | 8 | | |
19 | 9 | | |
| |||
22 | 12 | | |
23 | 13 | | |
24 | 14 | | |
25 | | - | |
26 | | - | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
27 | 29 | | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
28 | 37 | | |
29 | 38 | | |
30 | 39 | | |
| |||
39 | 48 | | |
40 | 49 | | |
41 | 50 | | |
42 | | - | |
43 | 51 | | |
44 | 52 | | |
45 | 53 | | |
46 | 54 | | |
47 | 55 | | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
48 | 76 | | |
49 | 77 | | |
50 | 78 | | |
| |||
94 | 122 | | |
95 | 123 | | |
96 | 124 | | |
97 | | - | |
98 | | - | |
99 | 125 | | |
100 | 126 | | |
101 | 127 | | |
| |||
363 | 389 | | |
364 | 390 | | |
365 | 391 | | |
366 | | - | |
367 | | - | |
368 | | - | |
369 | | - | |
370 | | - | |
371 | | - | |
372 | | - | |
373 | | - | |
374 | | - | |
375 | | - | |
376 | | - | |
377 | | - | |
378 | | - | |
379 | 392 | | |
380 | 393 | | |
381 | 394 | | |
382 | 395 | | |
383 | 396 | | |
384 | 397 | | |
385 | 398 | | |
386 | | - | |
| 399 | + | |
387 | 400 | | |
388 | 401 | | |
389 | 402 | | |
390 | 403 | | |
391 | 404 | | |
392 | | - | |
393 | | - | |
394 | | - | |
395 | | - | |
396 | | - | |
397 | | - | |
398 | | - | |
399 | | - | |
400 | | - | |
401 | | - | |
402 | | - | |
403 | | - | |
404 | | - | |
405 | | - | |
| 405 | + | |
| 406 | + | |
| 407 | + | |
| 408 | + | |
| 409 | + | |
| 410 | + | |
| 411 | + | |
| 412 | + | |
| 413 | + | |
| 414 | + | |
| 415 | + | |
| 416 | + | |
| 417 | + | |
| 418 | + | |
| 419 | + | |
| 420 | + | |
| 421 | + | |
| 422 | + | |
| 423 | + | |
| 424 | + | |
| 425 | + | |
| 426 | + | |
| 427 | + | |
| 428 | + | |
| 429 | + | |
| 430 | + | |
| 431 | + | |
| 432 | + | |
| 433 | + | |
| 434 | + | |
| 435 | + | |
| 436 | + | |
| 437 | + | |
| 438 | + | |
| 439 | + | |
406 | 440 | | |
407 | 441 | | |
408 | 442 | | |
409 | 443 | | |
410 | 444 | | |
411 | | - | |
| 445 | + | |
| 446 | + | |
| 447 | + | |
| 448 | + | |
| 449 | + | |
| 450 | + | |
| 451 | + | |
| 452 | + | |
| 453 | + | |
| 454 | + | |
| 455 | + | |
| 456 | + | |
412 | 457 | | |
413 | | - | |
| 458 | + | |
414 | 459 | | |
415 | | - | |
416 | | - | |
| 460 | + | |
417 | 461 | | |
418 | 462 | | |
419 | | - | |
| 463 | + | |
420 | 464 | | |
421 | | - | |
422 | | - | |
423 | | - | |
| 465 | + | |
| 466 | + | |
| 467 | + | |
| 468 | + | |
| 469 | + | |
424 | 470 | | |
425 | 471 | | |
426 | 472 | | |
427 | 473 | | |
428 | | - | |
| 474 | + | |
429 | 475 | | |
430 | 476 | | |
431 | | - | |
432 | | - | |
| 477 | + | |
| 478 | + | |
433 | 479 | | |
434 | 480 | | |
435 | 481 | | |
| |||
0 commit comments