Skip to content

refactor(confirmations): use MMDS HeaderStandard#29701

Open
brianacnguyen wants to merge 8 commits into
mainfrom
refactor/headerstandard-titles-confirmations
Open

refactor(confirmations): use MMDS HeaderStandard#29701
brianacnguyen wants to merge 8 commits into
mainfrom
refactor/headerstandard-titles-confirmations

Conversation

@brianacnguyen
Copy link
Copy Markdown
Contributor

@brianacnguyen brianacnguyen commented May 5, 2026

Description

This change replaces HeaderCompactStandard (component-library) with HeaderStandard from @metamask/design-system-react-native across confirmation-related modals and sheets.


Changelog

CHANGELOG entry: null


Related issues

Fixes: https://consensyssoftware.atlassian.net/browse/DSYS-698


Manual testing steps

Feature: Confirmation modals use standard header

  Scenario: Account selector sheet shows standard header
    Given the user is on a transaction confirmation that supports switching accounts
    When the user opens the account selector from the confirmation UI
    Then the sheet shows a header with the expected title and a working close control

  Scenario: Pay with asset modal
    Given the user is on a confirmation that opens the pay-with token picker
    When the user opens the pay-with modal and closes it via the header
    Then the modal closes without errors and the confirmation flow remains usable

  Scenario: Gas-related modals
    Given the user can open network fee or gas fee token UI from the confirmation
    When the user opens the estimates modal or gas fee token modal and dismisses it
    Then the modal closes correctly and the underlying confirmation is unchanged

  Scenario: Tooltip and expandable detail modals
    Given a confirmation screen shows info that opens a tooltip or expandable modal
    When the user opens and closes those modals from the header
    Then content is readable and close behaves as before

Screenshots/Recordings

Before

After


Pre-merge author checklist

Performance checks (if applicable)

  • I've tested on Android
    • Ideally on a mid-range device; emulator is acceptable
  • I've tested with a power user scenario
    • Use these power-user SRPs to import wallets with many accounts and tokens
  • I've instrumented key operations with Sentry traces for production performance metrics

For performance guidelines and tooling, see the Performance Guide.

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

Medium Risk
Swaps the header component across multiple confirmation modals/sheets; behavior differences in HeaderStandard (close handling/layout) could affect dismissal and navigation in transaction confirmation flows.

Overview
Migrates confirmation UI surfaces (account selector sheet, tooltips/expandables, gas-related modals, cancel/speedup modal, and pay-with token picker) from HeaderCompactStandard to MMDS HeaderStandard.

Updates related wiring and tests to match the new header API (including close handlers/props) and makes a small style comment/behavior alignment for the account selector sheet body layout.

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

@brianacnguyen brianacnguyen self-assigned this May 5, 2026
@brianacnguyen brianacnguyen requested a review from a team as a code owner May 5, 2026 05:21
@brianacnguyen brianacnguyen added No QA Needed Apply this label when your PR does not need any QA effort. team-design-system All issues relating to design system in Mobile no changelog required No changelog entry is required for this change labels May 5, 2026
@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented May 5, 2026

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.

@github-actions github-actions Bot added the size-S label May 5, 2026
@github-actions
Copy link
Copy Markdown
Contributor

🔍 Smart E2E Test Selection

  • Selected E2E tags: SmokeConfirmations, SmokeSwap, SmokeStake, SmokePerps, SmokeNetworkExpansion, SmokeMultiChainAPI
  • Selected Performance tags: None (no tests recommended)
  • Risk Level: medium
  • AI Confidence: 88%
click to see 🤖 AI reasoning details

E2E Test Selection:
This PR replaces HeaderCompactStandard (a temporary custom component from component-library/components-temp) with HeaderStandard (from @metamask/design-system-react-native) across 7 confirmation-related UI components:

  1. AccountSelector.tsx - Account selector bottom sheet header in confirmations
  2. Tooltip.tsx - Tooltip modal header in confirmations
  3. expandable.tsx - Expandable content modal header in confirmations
  4. gas-fee-token-modal.tsx - Gas fee token selection modal (EIP-7702 feature)
  5. cancel-speedup-modal.tsx - Cancel/speedup transaction modal header
  6. estimates-modal.tsx - Gas estimates modal header
  7. pay-with-modal.tsx - Pay with token modal header (used in Perps routes)

Risk assessment: The change is a component substitution in modal headers. The risk is that HeaderStandard may have different prop signatures, visual layout, or close button behavior compared to HeaderCompactStandard. If the close button doesn't work correctly, users cannot dismiss confirmation modals, which would be a critical UX regression.

Tag selection rationale:

  • SmokeConfirmations: Primary tag - all changed components are in the confirmations flow (gas modals, account selector, tooltips, cancel/speedup modal, estimates modal)
  • SmokeSwap: Per tag description, swap flows require confirmations - selecting SmokeConfirmations means also selecting SmokeSwap
  • SmokeStake: Per tag description, stake flows require confirmations - selecting SmokeConfirmations means also selecting SmokeStake
  • SmokePerps: pay-with-modal.tsx is imported by app/components/UI/Perps/routes/index.tsx, directly affecting Perps flows; also per tag description, SmokePerps requires SmokeConfirmations
  • SmokeNetworkExpansion: AccountSelector is used in Solana/multi-chain flows; Solana transaction/signing flows hit confirmations
  • SmokeMultiChainAPI: AccountSelector is used in multi-chain permission flows; per tag description, SmokeMultiChainAPI integrates with SmokeNetworkExpansion

Not selected: SmokeAccounts, SmokeIdentity, SmokeWalletPlatform, SmokeBrowser, SmokeSnaps, SmokeNetworkAbstractions, SmokeMoney, SmokeSeedlessOnboarding, SmokePredictions - these are not directly affected by confirmation modal header changes.

Performance Test Selection:
The changes are purely UI component substitutions (HeaderCompactStandard → HeaderStandard) in modal headers within the confirmations flow. These are header component replacements that don't affect rendering performance, data loading, state management, or any performance-critical paths. No performance tests are warranted.

View GitHub Actions results

@sonarqubecloud
Copy link
Copy Markdown

@brianacnguyen brianacnguyen enabled auto-merge May 14, 2026 22:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

no changelog required No changelog entry is required for this change No QA Needed Apply this label when your PR does not need any QA effort. size-S team-design-system All issues relating to design system in Mobile

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant