Skip to content

fix(accounts): restore account selector transition#29859

Merged
DostoevskysPiano merged 4 commits into
mainfrom
fix/account-selector-transition
May 8, 2026
Merged

fix(accounts): restore account selector transition#29859
DostoevskysPiano merged 4 commits into
mainfrom
fix/account-selector-transition

Conversation

@DostoevskysPiano
Copy link
Copy Markdown
Contributor

@DostoevskysPiano DostoevskysPiano commented May 7, 2026

Description

Restores a standard horizontal route transition for the full-page Account List. The Account Selector lives inside ROOT_MODAL_FLOW, which inherits animationEnabled: false, so opening Account List directly was mounting too quickly after the design-system migration removed the component-level Reanimated spring.

This keeps animation ownership in navigation config by adding a scoped transition option for Account Selector only. The same option is applied to the child ACCOUNT_SELECTOR route and to the parent ROOT_MODAL_FLOW route only when it is opened directly to Account Selector.

Changelog

CHANGELOG entry: Fixed the Account List opening too quickly.

Related issues

No issue: quick follow-up to the Account List transition regression investigation.

Manual testing steps

Feature: Account List transition

  Scenario: user opens and closes the Account List
    Given the user is on the wallet screen

    When user opens the Account List
    Then the Account List opens with a horizontal route transition

    When user closes the Account List
    Then the user returns to the wallet screen

Screenshots/Recordings

Before

N/A

After

N/A

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

Low Risk
Low risk UI/navigation change that only adjusts stack transition options for the Account Selector; main risk is unintended animation behavior when opening ROOT_MODAL_FLOW directly into that screen.

Overview
Restores a standard horizontal stack transition when opening the Account Selector, by centralizing its navigation options into a shared accountSelectorTransitionOptions.

Also applies the same transition to Routes.MODAL.ROOT_MODAL_FLOW only when it is launched directly to Routes.SHEET.ACCOUNT_SELECTOR, preventing the root modal flow’s default disabled animations from affecting that entry path.

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

@DostoevskysPiano DostoevskysPiano self-assigned this May 7, 2026
@github-actions github-actions Bot added the size-S label May 7, 2026
@DostoevskysPiano DostoevskysPiano force-pushed the fix/account-selector-transition branch from 8984338 to a5491cb Compare May 7, 2026 13:01
@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented May 7, 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.

@codecov-commenter
Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 66.66667% with 2 lines in your changes missing coverage. Please review.
✅ Project coverage is 81.50%. Comparing base (8208502) to head (a5491cb).
⚠️ Report is 15 commits behind head on main.

Files with missing lines Patch % Lines
app/components/Nav/App/App.tsx 66.66% 1 Missing and 1 partial ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main   #29859      +/-   ##
==========================================
+ Coverage   81.44%   81.50%   +0.05%     
==========================================
  Files        5318     5320       +2     
  Lines      140909   140979      +70     
  Branches    32109    32127      +18     
==========================================
+ Hits       114767   114902     +135     
+ Misses      18263    18222      -41     
+ Partials     7879     7855      -24     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@DostoevskysPiano
Copy link
Copy Markdown
Contributor Author

@metamaskbot update-mobile-fixture

@DostoevskysPiano
Copy link
Copy Markdown
Contributor Author

I have read the CLA Document and I hereby sign the CLA

@DostoevskysPiano DostoevskysPiano added the team-mobile-ux Mobile UX team label May 8, 2026
@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented May 8, 2026

🔍 Smart E2E Test Selection

  • Selected E2E tags: SmokeAccounts, SmokeWalletPlatform, SmokeIdentity, SmokeNetworkAbstractions, SmokeNetworkExpansion, SmokeConfirmations
  • Selected Performance tags: @PerformanceAccountList
  • Risk Level: medium
  • AI Confidence: 80%
click to see 🤖 AI reasoning details

E2E Test Selection:
The PR modifies App.tsx (root navigation component) to change the AccountSelector screen transition animation. Key changes:

  1. New slide-in animation: Replaces the old no-animation (transparent card, zero overlay opacity) with a slide-from-right translateX animation for the AccountSelector screen.
  2. Conditional ROOT_MODAL_FLOW options: The ROOT_MODAL_FLOW now conditionally applies accountSelectorTransitionOptions when navigating to AccountSelector, otherwise uses empty options.
  3. Helper function: isAccountSelectorRootModalRoute detects when ROOT_MODAL_FLOW targets AccountSelector.

The AccountSelector is a widely-used component accessed from wallet home, dApp connections, account actions, confirmations, and many other flows. The animation change could affect E2E test stability (timing issues) and visual behavior across all flows that open the account selector.

Selected tags cover:

  • SmokeAccounts: Directly tests account selection, switching, creating, importing accounts - all use AccountSelector
  • SmokeWalletPlatform: Wallet home uses account selector; multi-SRP flows
  • SmokeIdentity: Account sync flows use account selector
  • SmokeNetworkAbstractions: dApp chain permissions involve account selector
  • SmokeNetworkExpansion: Solana/multi-chain flows use account selector
  • SmokeConfirmations: Transaction confirmations involve account context and switching

Not selected: SmokeSnaps, SmokeBrowser, SmokeSwap, SmokeStake, SmokeMoney, SmokePerps, SmokeMultiChainAPI, SmokePredictions, SmokeSeedlessOnboarding - these are less directly impacted by the AccountSelector animation change, though some use it indirectly. The core account and navigation flows are covered by the selected tags.

Performance Test Selection:
The change modifies the AccountSelector transition animation (adding a translateX slide-in animation). This could impact account list rendering and dismissal performance since the new animation adds interpolation overhead. The @PerformanceAccountList tag covers account selector and multi-account scenarios which are directly affected by this animation change.

View GitHub Actions results

@sonarqubecloud
Copy link
Copy Markdown

sonarqubecloud Bot commented May 8, 2026

@DostoevskysPiano DostoevskysPiano marked this pull request as ready for review May 8, 2026 14:28
@DostoevskysPiano DostoevskysPiano added this pull request to the merge queue May 8, 2026
Merged via the queue into main with commit e8c8963 May 8, 2026
111 checks passed
@DostoevskysPiano DostoevskysPiano deleted the fix/account-selector-transition branch May 8, 2026 17:35
@github-actions github-actions Bot locked and limited conversation to collaborators May 8, 2026
@metamaskbotv2 metamaskbotv2 Bot added the release-7.78.0 Issue or pull request that will be included in release 7.78.0 label May 8, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

release-7.78.0 Issue or pull request that will be included in release 7.78.0 size-S team-mobile-ux Mobile UX team

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants