refactor(main navigator): migrate single routes in Main Navigator to native stack#31037
Conversation
…om:MetaMask/metamask-mobile into wsun/main-navigator-multi-screen-leaf-flow
|
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. |
There was a problem hiding this comment.
Please ignore DevPanel files as they will be deleted after migration is done
There was a problem hiding this comment.
Ignore this file. It'll be delete after migration is done
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 e6fe752. Configure here.
🔍 Smart E2E Test Selection
click to see 🤖 AI reasoning detailsE2E Test Selection: Key changes and their test implications:
Dependent tags per descriptions:
The NativeStack migration is a high-risk change because it changes the fundamental navigation behavior (animations, gestures, header rendering) for critical wallet screens. Any regression in navigation could break multiple user flows. Performance Test Selection: |
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## main #31037 +/- ##
==========================================
+ Coverage 82.86% 82.91% +0.05%
==========================================
Files 5582 5605 +23
Lines 144198 144496 +298
Branches 33521 33572 +51
==========================================
+ Hits 119483 119815 +332
+ Misses 16682 16611 -71
- Partials 8033 8070 +37 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|

Description
Migrates inner tab stacks (WalletTabStackFlow, TransactionsHome) from legacy JS Stack to native stack, and moves affected detail screens to in-screen HeaderStandard with headerShown: false on the navigator.
Changes
Navigation (MainNavigator.js)
-Removed navigation.setOptions usage (getNavigationOptionsTitle, getDepositNavbarOptions, getBridgeTransactionDetailsNavbar, redundant headerShown: false on OrderDetails).
-Back navigation uses navigation.goBack() with includesTopInset and back-button test IDs.
Changelog
CHANGELOG entry:null
Related issues
Fixes:
Manual testing steps
Screenshots/Recordings
Android build: https://github.com/MetaMask/metamask-mobile/actions/runs/26914955065
Wallet View
Transaction View
Android Test:
https://github.com/user-attachments/assets/45f29ebd-63f8-4286-ab23-a0a0c2228e40
Pre-merge author checklist
Performance checks (if applicable)
trace()for usage andaddTokenfor an exampleFor performance guidelines and tooling, see the Performance Guide.
Pre-merge reviewer checklist
Note
Medium Risk
Touches core wallet/activity navigation and several money movement detail UIs; regressions would show as wrong headers, back behavior, or stack transitions rather than data loss.
Overview
Migrates WalletTabStackFlow and TransactionsHome from the legacy JS stack to native stack, using
contentStylefor themed backgrounds andheaderShown: falseon the activity stack so pushed screens own their chrome.Detail flows (stack TransactionDetails, legacy ramp OrderDetails, DepositOrderDetails, SendTransaction, BridgeTransactionDetails) drop
navigation.setOptions/ shared navbar helpers in favor of in-screenHeaderStandardwithgoBack(), top inset, and back-button test IDs. Missing bridge history and empty ramp order states now show a header instead of a blank screen.RevealPrivateCredential adjusts bottom padding for the tab bar / safe area. Dev-only Navigation Dev Panel gains PR4a routes plus seed/resolver helpers to open activity-stack screens without real orders or bridge data.
Reviewed by Cursor Bugbot for commit 10e59f7. Bugbot is set up for automated code reviews on this repo. Configure here.