feat(money): card linking homepage state (MUSD-609)#29177
Conversation
|
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. |
…Bullet (MUSD-602)
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 1 potential issue.
❌ 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 e81fa15. Configure here.
AI PR Analysis🚫 Merge safe: false | 🟢 Risk: low No summary available. |
Matt561
left a comment
There was a problem hiding this comment.
Some minor comments but otherwise LGTM! I'm mostly unsure about how the card is expected to link to the Money account and whether selectIsCardholder is the correct selector to use.
🔍 Smart E2E Test Selection
click to see 🤖 AI reasoning detailsE2E Test Selection:
SmokeCard is the primary tag as these changes directly affect the Card home screen UI and cardholder experience. Per the SmokeCard tag description, SmokeTrade and SmokeConfirmations must also be selected since Add Funds uses swaps requiring transaction confirmations. The changes are isolated to the Money/Card feature area and do not touch shared navigation, browser, accounts, or other feature areas. Performance Test Selection: |
|
|
✅ E2E Fixture Validation — Schema is up to date |




Description
Implements the Money Account homepage "card linking" state — displayed when a user has deposited funds and has an unlinked MetaMask Card. This state encourages card linking with benefits messaging.
Subtasks implemented:
MoneyOnboardingCardwith avariantprop ('get-card'|'link-card'). The link-card variant shows "Link your MetaMask Card" title, cashback description, benefits bullets (checkmark icons with cashback and APY text), and a "Link card" CTA button.modeprop ('upsell'|'link') toMoneyMetaMaskCard. Link mode replaces the virtual/metal card rows with a card-linking layout: metal card thumbnail, benefits bullets, and a full-width "Link card" button.MoneyHomeViewusing theselectIsCardholderRedux selector. WhenisMilestone && isCardholder, bothMoneyOnboardingCardandMoneyMetaMaskCardswitch to their link-card variants. Verified all 6 reused sections (balance, action pills, earnings, activity, condensed cards, potential earnings) render correctly in the new state.Card linking CTA handlers are currently stubbed with
displayUnderConstructionAlert— they will be wired to the card linking flow when MUSD-489 lands.Changelog
CHANGELOG entry: null
Related issues
Fixes: MUSD-602
Manual testing steps
Screenshots/Recordings
Pre-merge author checklist
Performance checks (if applicable)
Pre-merge reviewer checklist
Note
Low Risk
Low risk UI/state changes: new rendering variants and CTA routing based on
selectIsCardholder, with handlers still stubbed to under-construction alerts.Overview
Adds a new “card-unlinked” homepage state on
MoneyHomeViewwhen the user is in a milestone/filled state andselectIsCardholderis true, switching the onboarding CTA to a link-card flow.Extends
MoneyOnboardingCardwith avariantto swap step-2 copy/CTA for card linking, and extendsMoneyMetaMaskCardwith amode="link"layout (benefit bullets + “Link card” button, plus APY display) instead of the virtual/metal upsell rows.Updates English i18n strings and expands unit tests to cover the new variants/mode and CTA press behavior across empty/milestone/card-unlinked states.
Reviewed by Cursor Bugbot for commit 0a8d8ea. Bugbot is set up for automated code reviews on this repo. Configure here.