Skip to content

fix(card): cp-7.62.0 general UI issues#24587

Merged
Brunonascdev merged 7 commits intomainfrom
fix/mm-card-general-ui-issues
Jan 16, 2026
Merged

fix(card): cp-7.62.0 general UI issues#24587
Brunonascdev merged 7 commits intomainfrom
fix/mm-card-general-ui-issues

Conversation

@Brunonascdev
Copy link
Copy Markdown
Contributor

@Brunonascdev Brunonascdev commented Jan 15, 2026

Description

This PR addresses multiple UI/UX issues in the MetaMask Card feature:

  1. Improved error handling for card provisioning: Previously, when card provisioning failed, the app showed a generic error message. Now it displays the actual error message returned by the API endpoint (e.g., "Unable to place a card order. Please contact customer support"), falling back to a generic message only when no specific error is provided.

  2. Updated UI copy and text improvements:

    • Updated card onboarding description to mention "3% cashback" instead of generic "earn rewards"
    • Fixed "Not now" button to use proper localization key
    • Updated KYC verification screen text to better reflect the "awaiting approval" state
    • Fixed physical address description text
    • Fixed spacing in "View document (PDF)" text
  3. Visual improvements:

    • Replaced ActivityIndicator with AnimatedSpinner in the KYC verification screen for consistent styling
    • Updated the verify identity image
  4. Code cleanup:

    • Removed unused MailingAddress route from onboarding navigator
    • Removed unused VerifyingRegistration route from card routes

Changelog

CHANGELOG entry: Fixed card provisioning to show specific API error messages instead of generic errors

Related issues

Fixes:

Manual testing steps

Feature: Card Provisioning Error Messages

  Scenario: user sees specific error message when card provisioning fails
    Given user is authenticated and on Card Home screen
    And the card provisioning API returns an error with message "Unable to place a card order. Please contact customer support"

    When user taps "Enable Card" button
    Then a toast notification appears with the message "Unable to place a card order. Please contact customer support"

  Scenario: user sees fallback error when API returns no message
    Given user is authenticated and on Card Home screen
    And the card provisioning API returns an error without a message field

    When user taps "Enable Card" button
    Then a toast notification appears with a generic error message

Feature: KYC Verification Screen

  Scenario: user sees updated UI during KYC verification
    Given user has completed the Veriff KYC flow

    When user is redirected to the verification screen
    Then user sees "Awaiting approval" as the title
    And user sees an animated spinner instead of a static activity indicator
    And user sees updated helper text "This usually takes a few seconds. Please do not close the app."

Screenshots/Recordings

Before

After

Pre-merge author checklist

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

Improves Card provisioning feedback, polishes onboarding UX/copy, and removes unused onboarding flows.

  • Surfaces API error messages from provisionCard (in CardSDK.ts) and displays them in CardHome toast; falls back to card_home.enable_card_error
  • Updates onboarding copy and assets: new description and "Not now" key, replace ActivityIndicator with AnimatedSpinner in VerifyingVeriffKYC, swap verify identity image
  • Enhances confirm flow: ConfirmEmail now resets navigation to Routes.CARD.AUTHENTICATION; ConfirmModal accepts onClose and wires it to BottomSheet
  • Removes unused MailingAddress and VerifyingRegistration screens, routes, and tests; prunes related navigator entries
  • Refreshes i18n strings in en.json; updates tests to reflect new behaviors

Written by Cursor Bugbot for commit 9a7af72. This will update automatically on new commits. Configure here.

@Brunonascdev Brunonascdev self-assigned this Jan 15, 2026
@Brunonascdev Brunonascdev requested a review from a team as a code owner January 15, 2026 19:26
@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.

@metamaskbot metamaskbot added the team-card Card Team label Jan 15, 2026
@github-actions github-actions bot added size-XL and removed size-M labels Jan 15, 2026
@Brunonascdev Brunonascdev added the skip-sonar-cloud Only used for bypassing sonar cloud when failures are not relevant to the changes. label Jan 16, 2026
@Brunonascdev Brunonascdev changed the title fix(card): general UI issues fix(card): cp-7.62.0 general UI issues Jan 16, 2026
@github-actions
Copy link
Copy Markdown
Contributor

🔍 Smart E2E Test Selection

  • Selected E2E tags: SmokeCard
  • Risk Level: medium
  • AI Confidence: 95%
click to see 🤖 AI reasoning details

This PR contains changes exclusively to the Card feature in MetaMask Mobile. The changes include:

  1. Removed components: MailingAddress.tsx and VerifyingRegistration.tsx were completely deleted, along with their test files
  2. Modified onboarding flow: The OnboardingNavigator no longer includes the MAILING_ADDRESS route/phase
  3. Improved error handling: CardSDK.ts and CardHome.tsx now properly extract and display API error messages for card provisioning failures
  4. UI improvements: VerifyingVeriffKYC now uses AnimatedSpinner instead of ActivityIndicator, and VerifyIdentity uses a new image
  5. Navigation changes: ConfirmEmail now uses navigation.reset() for better UX when an account already exists
  6. Translation updates: Various Card-related strings were updated in en.json

All changes are completely isolated to the Card feature (app/components/UI/Card/). No core wallet functionality, controllers, or other features are affected. The changes are primarily:

  • Simplifying the onboarding flow by removing unused steps
  • Improving error handling and user experience
  • Updating UI components and translations

The SmokeCard tag is the appropriate and only necessary tag to run, as it will verify the Card feature functionality after these changes. No other features are impacted by these changes.

View GitHub Actions results

@sonarqubecloud
Copy link
Copy Markdown

Quality Gate Failed Quality Gate failed

Failed conditions
B Maintainability Rating on New Code (required ≥ A)

See analysis details on SonarQube Cloud

Catch issues before they fail your Quality Gate with our IDE extension SonarQube for IDE

@Brunonascdev Brunonascdev added this pull request to the merge queue Jan 16, 2026
Merged via the queue into main with commit cf36624 Jan 16, 2026
85 of 87 checks passed
@Brunonascdev Brunonascdev deleted the fix/mm-card-general-ui-issues branch January 16, 2026 14:29
@github-actions github-actions bot locked and limited conversation to collaborators Jan 16, 2026
@metamaskbot metamaskbot added the release-7.63.0 Issue or pull request that will be included in release 7.63.0 label Jan 16, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

release-7.63.0 Issue or pull request that will be included in release 7.63.0 size-XL skip-sonar-cloud Only used for bypassing sonar cloud when failures are not relevant to the changes. team-card Card Team

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants