Skip to content

fix(money): design review polishes — CTA, convert info icon, copy, kebab icon (MUSD-805)#30301

Merged
Kureev merged 3 commits into
mainfrom
kureev/MUSD-805
May 20, 2026
Merged

fix(money): design review polishes — CTA, convert info icon, copy, kebab icon (MUSD-805)#30301
Kureev merged 3 commits into
mainfrom
kureev/MUSD-805

Conversation

@Kureev

@Kureev Kureev commented May 18, 2026

Copy link
Copy Markdown
Contributor

Description

Design-review polish pass for the Money home experience (MUSD-805):

  1. Home balance card CTA is now balance-driven: a zero ($0.00) Money balance shows a Primary "Earn" button; a funded (>$0) balance shows the Secondary "Add" button. The MUSD-788 new-user / onboarding ("Get started" / "Earn") path is unchanged, and navigation still opens the Add Money sheet.
  2. mUSD conversion screen header: the info (ⓘ) button is greyed per design. Both header icons (ⓘ and back arrow) are now driven by the app theme (useTheme().colors.icon.alternative / .default) instead of design-system IconColor.* tokens. Rationale: the design-system preset has no ThemeProvider mounted in this app, so IconColor.* always resolves to the light palette, while the navbar background follows the real app theme (useNavbargetNavbar({ theme })) — leaving the icon invisible on a dark header. Sourcing the color from the app theme keeps the greyed ⓘ (and the back arrow) correctly visible across light and dark.
  3. "How it works" condensed card subtitle copy updated to "See how your money can grow".
  4. Money "More" sheet: the "How it works" row now uses the Book icon instead of the Info icon.

Scope stayed within Money/Earn-owned code — no shared confirmations components were modified.

Changelog

CHANGELOG entry: null

Related issues

Fixes: https://consensyssoftware.atlassian.net/browse/MUSD-805

Manual testing steps

Feature: Money home design polishes

  Scenario: Zero-balance Money card shows the Earn CTA
    Given a user with a $0.00 Money balance who has seen onboarding
    Then the home Money card shows a primary "Earn" button

  Scenario: Funded Money card shows the Add CTA
    Given a user with a Money balance greater than $0.00
    Then the home Money card shows a secondary "Add" button

  Scenario: Convert screen header info icon is greyed
    When the user opens the mUSD "Convert and get X%" screen
    Then the header info (i) icon is rendered in grey, not white

  Scenario: How it works copy and kebab icon
    Given the user is on the Money home
    Then the "How it works" card subtitle reads "See how your money can grow"
    And the "How it works" row in the More sheet shows a book icon

Screenshots/Recordings

Before

Convert screen header info icon rendered white; home CTA labelled "Add" on empty balance.

After

image image image image

Pre-merge author checklist

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

  • 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.

Note

Low Risk
Low risk UI/UX tweaks and test updates; only behavioral change is which CTA label/testID appears on the balance card when the balance is zero, while navigation target remains the Add Money sheet.

Overview
Updates the Money balance card so a zero/empty balance now shows a primary “Earn” CTA (using EARN_BUTTON) instead of “Add”, while funded balances still show the secondary “Add” CTA; tests are updated to assert the new label/variant and navigation behavior.

Greys out the mUSD conversion navbar info icon by switching its ButtonIcon color to IconColor.IconAlternative and adds a regression test for the icon color.

Replaces the Money “More” sheet “How it works” row icon from Info to Book (with new icon assertions in tests) and updates the “How it works” condensed card subtitle copy in en.json.

Reviewed by Cursor Bugbot for commit 58abc63. Bugbot is set up for automated code reviews on this repo. Configure here.

…bab icon (MUSD-805)

- MoneyBalanceCard: zero balance shows Primary "Earn", funded shows Secondary "Add"
- mUSD conversion navbar: header info icon greyed (IconColor.IconAlternative)
- Condensed card subtitle: "See how your money can grow"
- Money More sheet: "How it works" option uses Book icon
@github-actions

Copy link
Copy Markdown
Contributor

CLA Signature Action: All authors have signed the CLA. You may need to manually re-run the blocking PR check if it doesn't pass in a few minutes.

@Kureev Kureev added the pr-not-ready-for-e2e Skip E2E and block merging. Remove this label once the PR is ready to run the E2E tests. label May 18, 2026
@Kureev Kureev marked this pull request as ready for review May 18, 2026 11:35
@Kureev Kureev requested a review from a team as a code owner May 18, 2026 11:35
@Kureev Kureev removed the pr-not-ready-for-e2e Skip E2E and block merging. Remove this label once the PR is ready to run the E2E tests. label May 18, 2026
@Kureev Kureev self-assigned this May 18, 2026
…state

The test name claimed a Primary-variant check but only asserted presence,
so a Primary->Secondary regression would pass silently. Query the Button
element by testID + variant so the design contract is actually verified.

@cursor cursor Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes and found 2 potential issues.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, have a team admin enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit bb4e471. Configure here.

Comment thread app/components/UI/Money/components/MoneyBalanceCard/MoneyBalanceCard.test.tsx Outdated
...actual,
BottomSheet: MockBottomSheet,
BottomSheetHeader: MockBottomSheetHeader,
Icon: MockIcon,

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Mocking MMDS Icon component to inject testIDs

Low Severity

The Icon component from @metamask/design-system-react-native is mocked solely to surface name as a testID. Per the unit testing guidelines, MMDS components should never be mocked just to inject testIDs — the Icon component already accepts a testID prop directly. Adding testID={icon-${item.icon}} to the <Icon> element in MoneyMoreSheet.tsx would make the mock unnecessary and keep the tests aligned with the team's testing conventions.

Additional Locations (1)
Fix in Cursor Fix in Web

Triggered by project rule: Unit Testing Guidelines

Reviewed by Cursor Bugbot for commit bb4e471. Configure here.

@Matt561 Matt561 self-requested a review May 19, 2026 20:42
Comment thread app/components/UI/Earn/hooks/useMusdConversionNavbar.tsx Outdated
@Kureev Kureev force-pushed the kureev/MUSD-805 branch from 20211db to bb4e471 Compare May 19, 2026 22:56
@Kureev Kureev requested a review from Matt561 May 19, 2026 23:06
Per docs/testing/unit-testing.md, toBeTruthy() on a query result is
banned for presence checks. The intent of this assertion is the variant
value itself, so read variant off the queried node and assert with
toBe(ButtonVariant.Primary). UNSAFE_getByProps still throws if the
testID+variant combination is missing, preserving the original failure
mode.
@github-actions

Copy link
Copy Markdown
Contributor

🔍 Smart E2E Test Selection

  • Selected E2E tags: SmokeMoney, SmokeStake, SmokeConfirmations
  • Selected Performance tags: None (no tests recommended)
  • Risk Level: low
  • AI Confidence: 88%
click to see 🤖 AI reasoning details

E2E Test Selection:
The changes are limited to:

  1. MoneyBalanceCard.tsx: In the empty state, the button label changes from "Add" (money.balance_card.add) to "Earn" (homepage.sections.money_empty_state.earn), and the test ID changes from ADD_BUTTON to EARN_BUTTON. This is a functional UI change within the Money/Card feature.
  2. MoneyMoreSheet.tsx: Icon changed from Info to Book for the "How it works" menu option - purely cosmetic.
  3. useMusdConversionNavbar.tsx: Icon color changed from IconDefault to IconAlternative - purely cosmetic change in the Earn/mUSD conversion navbar.
  4. locales/en.json: Copy change for "how_it_works_subtitle" in condensed_cards section.
  5. Test files: Unit tests updated to reflect the above changes.

All changes are confined to the Money and Earn UI components with no impact on core controllers, navigation infrastructure, or shared components. SmokeMoney covers the MetaMask Card and Money flows directly affected. SmokeStake covers the Earn/mUSD lending flows affected by the navbar change. SmokeConfirmations is included per tag dependency guidance since Money and Stake flows involve transaction confirmations. No other tags are warranted as there are no changes to accounts, networks, swaps, browser, snaps, or other feature areas.

Performance Test Selection:
The changes are purely cosmetic UI updates (icon colors, button labels, icon names) and copy text changes. They do not affect rendering performance, data loading, state management, or any critical user flows that would impact measurable performance metrics. No performance tests are warranted.

View GitHub Actions results

@sonarqubecloud

Copy link
Copy Markdown

@Kureev Kureev added this pull request to the merge queue May 20, 2026
Merged via the queue into main with commit e3420cd May 20, 2026
195 of 198 checks passed
@Kureev Kureev deleted the kureev/MUSD-805 branch May 20, 2026 14:20
@github-actions github-actions Bot locked and limited conversation to collaborators May 20, 2026
@metamaskbotv2 metamaskbotv2 Bot added the release-7.79.0 Issue or pull request that will be included in release 7.79.0 label May 20, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

release-7.79.0 Issue or pull request that will be included in release 7.79.0 size-M team-earn

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants