refactor: migrate AccountGroupDetails to design-system-react-native (MUL-1688)#29698
Conversation
MUL-1688: Replace deprecated component-library HeaderBase, ButtonLink, Text, Icon, Avatar, and app Box with @metamask/design-system-react-native equivalents in AccountGroupDetails and child components. Co-authored-by: Cursor <cursoragent@cursor.com>
|
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 1 potential issue.
There are 2 total unresolved issues (including 1 from previous review).
❌ 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 7d8c637. Configure here.
🔍 Smart E2E Test Selection
click to see 🤖 AI reasoning detailsE2E Test Selection: The
SmokeAccounts is selected because this screen is central to multi-account management, SRP export flows, and account visibility management. SmokeWalletPlatform is selected per the SmokeAccounts tag description: "When changes touch multi-SRP architecture, account list, or SRP export flows, also select SmokeWalletPlatform." SmokeIdentity is selected per the SmokeAccounts tag description: "also select SmokeIdentity" when changes touch multi-SRP architecture and SRP export flows. The risk is medium because while the changes are purely cosmetic (design system migration), incorrect prop mappings or missing exports from the new design system package could break the UI rendering of these account management screens. The test file also updates to use the new Performance Test Selection: |
|
Test before merge Screen.Recording.2026-06-03.at.11.56.52.AM.mov |




Description
Implements MUL-1688 by migrating
AccountGroupDetailsand its child rows away from deprecatedapp/component-libraryprimitives and onto@metamask/design-system-react-native.Changelog
CHANGELOG entry: null
Related issues
Refs: https://consensyssoftware.atlassian.net/browse/MUL-1688
Manual testing steps
Screenshots/Recordings
Validation
yarn jest app/components/Views/MultichainAccounts/AccountGroupDetails/AccountGroupDetails.test.tsxyarn exec eslint app/components/Views/MultichainAccounts/AccountGroupDetails/AccountGroupDetails.tsx app/components/Views/MultichainAccounts/AccountGroupDetails/components/SecretRecoveryPhrase.tsx app/components/Views/MultichainAccounts/AccountGroupDetails/components/Wallet.tsx app/components/Views/MultichainAccounts/AccountGroupDetails/components/RemoveAccount.tsx app/components/Views/MultichainAccounts/AccountGroupDetails/AccountGroupDetails.test.tsxgit diff --checkyarn lint:tsccurrently fails on unrelated existing fixture errors inapp/components/UI/Card/hooks/useEmailVerificationVerify.test.tsat lines 91 and 307 (canonicalProfileIdmissing from mockedUserProfile).Pre-merge author checklist
Performance checks (if applicable)
Pre-merge reviewer checklist
Note
Low Risk
Presentation-only refactor on account settings screens; navigation and business logic are unchanged.
Overview
Account Group Details and its row components (
Wallet,SecretRecoveryPhrase,RemoveAccount) now import layout, typography, icons, header, and avatars from@metamask/design-system-react-nativeinstead of deprecatedcomponent-library/ localBoxUI.The screen swaps the legacy account
AvatarforAvatarAccount, maps settings avatar type throughgetAvatarAccountVariant, and usesHeaderBase’sstartButtonIconPropsfor back navigation. Text uses design-system variants (BodyMd+FontWeight.Medium); icons useIconColorinstead of theme colors; rowBoxprops use design-system enums with smallergapvalues.Tests mock
AvatarAccountand useAvatarAccountVariantin mock state.Reviewed by Cursor Bugbot for commit 8c90862. Bugbot is set up for automated code reviews on this repo. Configure here.