MetaMask / MetaMask/metamask-mobile

Upgrade to React Navigation v6

Open
#19,191 0 comments 0 reactions 1 assignee View on GitHub

@Cal-L is already working on this.

Since Sep 3, 2025.

team-mobile-platform
Dominant language
TypeScript
Stars
3k
Forks
1.7k
Avg merge
1d 14h
Merged PRs (30d)
669

Description

What is this about?

This task tracks the work to upgrade from React Navigation v5 -> v6. The goal is to eventually get to the latest version: v7 and possibly explore expo router in the future.

Migration docs from v5->v6 - https://reactnavigation.org/docs/6.x/upgrading-from-5.x/

Scenario

No response

Design

No response

Technical Details
  • Update package dependencies to v6
  • Fix state access on routes. ex. app/util/general/index.js
  • Update mode="modal" -> presentation="modal"
  • Update dangerously calls
  • Move headerMode to options
  • Audit setParam calls
  • Type ParamLists and apply to stack navigators
  • Remove createNavigationDetails since navigation is now typed already
  • Fix types on NavigationService.navigation.navigate calls
  • Fix navigation.X method calls
  • Fix useRoute types
  • Remove useParams in favor of useRoute
Threat Modeling Framework

No response

Acceptance Criteria

No response

Stakeholder review needed before the work gets merged
  • Engineering (needed in most cases)
  • Design
  • Product
  • QA (automation tests are required to pass before merging PRs but not all changes are covered by automation tests - please review if QA is needed beyond automation tests)
  • Security
  • Legal
  • Marketing
  • Management (please specify)
  • Other (please specify)
References

No response

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.