Skip to content

feat: show private key list as full screen#28703

Merged
gantunesr merged 4 commits intomainfrom
gar/feat/private-key-list-full-screen
Apr 16, 2026
Merged

feat: show private key list as full screen#28703
gantunesr merged 4 commits intomainfrom
gar/feat/private-key-list-full-screen

Conversation

@gantunesr
Copy link
Copy Markdown
Member

@gantunesr gantunesr commented Apr 11, 2026

Description

The multichain private key list previously used a BottomSheet and transparent modal presentation. It now uses the same full-screen pattern as Address List: HeaderCompactStandard via useLayoutEffect / navigation.setOptions, a flex root, and slide-in card options on the parent stack screen.

Cancel uses navigation.goBack() instead of closing a sheet. BottomSheet-specific code (gesture scroll ref context, RNGH ScrollView wrapper for FlashList, panGestureHandlerProps) was removed.

Changelog

CHANGELOG entry: Updated multichain private key list to open as a full screen instead of a bottom sheet

Related issues

Fixes: #28809
Fixes: https://consensyssoftware.atlassian.net/browse/MUL-1611

Manual testing steps

Feature: Multichain private key list full screen

  Scenario: Open private key list from account group
    Given the user is on multichain account group details with a wallet that supports exported keys

    When the user opens the private key list flow and enters the wallet password
    Then the screen is full screen with a back control in the header and the address list scrolls as expected

    When the user taps Cancel before unlocking
    Then the app navigates back to the previous screen

Screenshots/Recordings

Before

N/A

After

Screen.Recording.2026-04-15.at.8.34.08.PM.mov

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
Changes navigation/presentation for the private key export list (a sensitive flow), which could impact back navigation, header behavior, or modal stacking. No changes to key export/verification logic, so risk is mainly UI/navigation regressions.

Overview
Shows the multichain private key list as a full-screen screen instead of a bottom sheet, including adding a HeaderCompactStandard-style header via navigation.setOptions and simplifying the layout to a flex-root view.

Updates the parent navigator configuration for Routes.MULTICHAIN_ACCOUNTS.PRIVATE_KEY_LIST to use an opaque card background and a horizontal slide-in interpolator (replacing transparentModal). Removes BottomSheet-specific gesture/scroll wiring and updates tests to assert the header title via setOptions, adding a back button testID (PrivateKeyListIds.GO_BACK).

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

Replace BottomSheet with stack header + full-screen layout aligned with
AddressList. Remove sheet gesture scroll wiring and transparent modal
presentation.

Made-with: Cursor
@gantunesr gantunesr self-assigned this Apr 11, 2026
@metamaskbot metamaskbot added the team-accounts-framework Accounts team label Apr 11, 2026
@gantunesr gantunesr changed the title feat(multichain-accounts): show private key list as full screen feat: show private key list as full screen Apr 11, 2026
@gantunesr gantunesr marked this pull request as ready for review April 11, 2026 01:59
@gantunesr gantunesr requested a review from a team as a code owner April 11, 2026 01:59
@github-actions github-actions Bot added the risk-medium Moderate testing recommended · Possible bug introduction risk label Apr 13, 2026
@github-actions github-actions Bot added risk-high Extensive testing required · High bug introduction risk and removed risk-medium Moderate testing recommended · Possible bug introduction risk labels Apr 13, 2026
@owencraston
Copy link
Copy Markdown
Contributor

Overall looking good. The full scree private key screen looks good but the password input screen looks a bit odd with all the info floating at the top. In my opinion the password input screen makes sense to be a bottom sheet since its contextual but I don't feel strongly. Curious what @DostoevskysPiano thinks.

screen-20260414-192712-1776209212209.mp4
Screenshot_20260414-192808

@github-actions github-actions Bot added risk-high Extensive testing required · High bug introduction risk and removed risk-high Extensive testing required · High bug introduction risk labels Apr 16, 2026
@github-actions
Copy link
Copy Markdown
Contributor

🔍 Smart E2E Test Selection

  • Selected E2E tags: SmokeAccounts, SmokeConfirmations, SmokeIdentity, SmokeNetworkAbstractions, SmokeNetworkExpansion, SmokeTrade, SmokeWalletPlatform, SmokeCard, SmokePerps, SmokeRamps, SmokeMultiChainAPI, SmokePredictions, SmokeSeedlessOnboarding, FlaskBuildTests
  • Selected Performance tags: @PerformanceAccountList, @PerformanceOnboarding, @PerformanceLogin, @PerformanceSwaps, @PerformanceLaunch, @PerformanceAssetLoading, @PerformancePredict, @PerformancePreps
  • Risk Level: high
  • AI Confidence: %
click to see 🤖 AI reasoning details

E2E Test Selection:
Fallback: AI analysis did not complete successfully. Running all tests.

Performance Test Selection:
Fallback: AI analysis did not complete successfully. Running all performance tests.

View GitHub Actions results

@codecov-commenter
Copy link
Copy Markdown

codecov-commenter commented Apr 16, 2026

Codecov Report

❌ Patch coverage is 83.33333% with 3 lines in your changes missing coverage. Please review.
✅ Project coverage is 82.28%. Comparing base (aa88381) to head (a7bdb4d).
⚠️ Report is 103 commits behind head on main.

Files with missing lines Patch % Lines
...ltichainAccounts/PrivateKeyList/PrivateKeyList.tsx 82.35% 2 Missing and 1 partial ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main   #28703      +/-   ##
==========================================
+ Coverage   82.19%   82.28%   +0.09%     
==========================================
  Files        4987     5033      +46     
  Lines      131211   132087     +876     
  Branches    29316    29481     +165     
==========================================
+ Hits       107843   108688     +845     
+ Misses      16017    16015       -2     
- Partials     7351     7384      +33     

☔ 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.

@sonarqubecloud
Copy link
Copy Markdown

@github-actions
Copy link
Copy Markdown
Contributor

E2E Fixture Validation — Schema is up to date
11 value mismatches detected (expected — fixture represents an existing user).
View details

Copy link
Copy Markdown
Contributor

@montelaidev montelaidev left a comment

Choose a reason for hiding this comment

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

Lgtm. Tested on ios

Simulator Screenshot - Second - 2026-04-16 at 20 53 55

@gantunesr gantunesr added this pull request to the merge queue Apr 16, 2026
Merged via the queue into main with commit 894f0d6 Apr 16, 2026
115 of 117 checks passed
@gantunesr gantunesr deleted the gar/feat/private-key-list-full-screen branch April 16, 2026 13:10
@github-actions github-actions Bot locked and limited conversation to collaborators Apr 16, 2026
@metamaskbotv2 metamaskbotv2 Bot added the release-7.74.0 Issue or pull request that will be included in release 7.74.0 label Apr 16, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

release-7.74.0 Issue or pull request that will be included in release 7.74.0 risk-high Extensive testing required · High bug introduction risk size-M team-accounts-framework Accounts team

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Bug]: Unable to scroll up in Private key screen

5 participants