Skip to content

feat(settings): cp-7.66.0 add feature flag to toggle between Account Menu and legacy Settings#26032

Merged
vinnyhoward merged 2 commits intomainfrom
chore-tmcu-397-account-menu-ff
Feb 13, 2026
Merged

feat(settings): cp-7.66.0 add feature flag to toggle between Account Menu and legacy Settings#26032
vinnyhoward merged 2 commits intomainfrom
chore-tmcu-397-account-menu-ff

Conversation

@vinnyhoward
Copy link
Copy Markdown
Contributor

@vinnyhoward vinnyhoward commented Feb 12, 2026

Description

This PR introduces the mobileUxAccountMenu feature flag to enable gradual rollout of the Account Menu feature. Originally we wanted to ship for this RC as is in this PR but we found some UI refinements were needed. The feature is being moved behind a feature flag and be hidden from this current RC and to allow for final design refinements for the next RC.

Why is this change required?
The Account Menu feature requires additional refinements before full release. A feature flag allows us to:

  • Control rollout via LaunchDarkly
  • Maintain backward compatibility with existing Settings flow
  • Iterate on design improvements without blocking the next release

What does this PR do?
Adds selectAccountMenuEnabled selector and useAccountMenuEnabled hook using the mobileUxAccountMenu remote feature flag

  • Implements conditional navigation: enabled → AccountsMenuView, disabled → legacy Settings
  • Hides duplicate sections in Settings when Account Menu is enabled (Permissions, Contacts, About MetaMask, Request Feature, Contact Support, Lock)
  • Hides SDK section in SecuritySettings when Account Menu is enabled
  • Adds unit tests for both enabled/disabled states
  • Reverts E2E spec files to pre-Account Menu state to avoid test skipping (4 files: account-syncing-settings-toggle, contact-sync-toggle, sync-users-contacts, test-snap-management). The E2E tests will be added again once the feature is ready

Changelog

CHANGELOG entry: Added feature flag mobileUxAccountMenu to control Account Menu rollout

Related issues

Fixes: https://consensyssoftware.atlassian.net/browse/TMCU-397

Manual testing steps

Scenario 1: Feature flag disabled (default behavior)

Given the mobileUxAccountMenu feature flag is disabled
When I tap the Settings tab in TabBar
Then I should navigate to the legacy Settings screen
And I should see all sections including Permissions, Contacts, About MetaMask, Request Feature, Contact Support, and Lock
And I should see the SDK section in Security Settings

Scenario 2: Feature flag enabled (new behavior)

Given the mobileUxAccountMenu feature flag is enabled
When I tap the Settings tab in TabBar
Then I should navigate to the AccountsMenuView screen
And the legacy Settings screen should hide duplicate sections (Permissions, Contacts, About MetaMask, Request Feature, Contact Support, Lock)
And the SDK section should be hidden in Security Settings

Screenshots/Recordings

Feature Flag Off

ff_off.mov

Feature Flag On

ff_on.mov

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

Medium Risk
Touches primary navigation paths into Settings and conditionally hides/redirects multiple Settings entries based on a remote flag, so misconfiguration or routing mismatches could strand users or break test flows.

Overview
Adds a new remote, version-gated feature flag (mobileUxAccountMenu) via selectAccountMenuEnabled + useAccountMenuEnabled, and wires it into navigation so the Settings tab/flow can start at either AccountsMenu (flag on) or the legacy Settings screen (flag off).

Updates the legacy Settings/Security UI to avoid duplicate entry points when the account menu is enabled (e.g., hides Permissions/Contacts/About/feedback/help/lock entries in Settings, and hides the SDK connections section in SecuritySettings), while adding the missing legacy actions (open support/feature request webviews and lock flow).

Expands unit tests and snapshots to cover both flag states, and adjusts Detox smoke tests/page objects to navigate to Settings/Contacts without relying on the Account Menu screens.

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

@vinnyhoward vinnyhoward requested review from a team as code owners February 12, 2026 18:51
@vinnyhoward vinnyhoward added the team-mobile-ux Mobile UX team label Feb 12, 2026
@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.

name={Routes.ACCOUNTS_MENU_VIEW}
component={AccountsMenu}
options={{ headerShown: false }}
/>
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The diff for this file appears large (~160 lines) but the actual functional changes are minimal. The bulk of the diff is due to re-indenting the SettingsFlow component when changing from implicit return () => (...) to explicit return () => { return (...) } (needed to add the feature flag hook).

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👌 hiding whitespace changes confirms this

Image

@vinnyhoward vinnyhoward requested a review from a team as a code owner February 12, 2026 19:22
@vinnyhoward vinnyhoward added the skip-sonar-cloud Only used for bypassing sonar cloud when failures are not relevant to the changes. label Feb 12, 2026
Copy link
Copy Markdown

@cursor cursor bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes and found 1 potential issue.

@cortisiko cortisiko added the skip-smart-e2e-selection Skip Smart E2E selection, i.e. select all E2E tests to run label Feb 12, 2026
@github-actions
Copy link
Copy Markdown
Contributor

🔍 Smart E2E Test Selection

⏭️ Smart E2E selection skipped - skip-smart-e2e-selection label found

All E2E tests pre-selected.

View GitHub Actions results

@sonarqubecloud
Copy link
Copy Markdown

Quality Gate Failed Quality Gate failed

Failed conditions
76.8% Coverage on New Code (required ≥ 80%)

See analysis details on SonarQube Cloud

Copy link
Copy Markdown
Contributor

@Cal-L Cal-L left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@vinnyhoward vinnyhoward changed the title feat(settings): add feature flag to toggle between Account Menu and legacy Settings feat(settings): cp-7.66.0 add feature flag to toggle between Account Menu and legacy Settings Feb 12, 2026
@vinnyhoward vinnyhoward added this pull request to the merge queue Feb 13, 2026
Merged via the queue into main with commit 3ef936b Feb 13, 2026
207 of 208 checks passed
@vinnyhoward vinnyhoward deleted the chore-tmcu-397-account-menu-ff branch February 13, 2026 14:23
@github-actions github-actions bot locked and limited conversation to collaborators Feb 13, 2026
@metamaskbot metamaskbot added the release-7.67.0 Issue or pull request that will be included in release 7.67.0 label Feb 13, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

release-7.67.0 Issue or pull request that will be included in release 7.67.0 size-L skip-smart-e2e-selection Skip Smart E2E selection, i.e. select all E2E tests to run skip-sonar-cloud Only used for bypassing sonar cloud when failures are not relevant to the changes. team-mobile-ux Mobile UX team

Projects

None yet

Development

Successfully merging this pull request may close these issues.

8 participants