Skip to content

chore: upgrade design system packages (v42.0.0)#30826

Merged
georgewrmarshall merged 9 commits into
mainfrom
chore/upgrade-design-system-v42
Jun 4, 2026
Merged

chore: upgrade design system packages (v42.0.0)#30826
georgewrmarshall merged 9 commits into
mainfrom
chore/upgrade-design-system-v42

Conversation

@georgewrmarshall

@georgewrmarshall georgewrmarshall commented May 29, 2026

Copy link
Copy Markdown
Contributor

Description

Upgrades mobile design system packages to align with the v42.0.0 release.

Packages upgraded:

  • @metamask/design-system-react-native: ^0.26.0^0.27.0
  • @metamask/design-system-shared: 0.19.00.20.0 transitively via @metamask/design-system-react-native

Reanimated compatibility context

The MMDS v42 release includes breaking API changes in BottomSheet, BottomSheetHeader, and HeaderBase, but it does not require a mobile-side react-native-reanimated bump.

  • Mobile already pins react-native-reanimated to 3.19.0
  • @metamask/design-system-react-native@0.27.0 declares react-native-reanimated >=3.17.0 as its peer range
  • The migration work in this PR is limited to the MMDS API changes; no mobile reanimated version change is needed for compatibility

Breaking changes addressed:

HeaderBase / BottomSheetHeader: variant-based title API removed

The v42 release removes variant, HeaderBaseVariant, BottomSheetHeaderVariant, and titleTestID from the design-system header APIs.

Migration: Replaced titleTestID with textProps.testID, removed variant imports/usages, and used explicit title content/wrapper props where the previous display variant was needed.

  • app/components/Views/MultichainAccounts/AccountDetails/components/SmartAccountModal/SmartAccountModal.tsx: replaced titleTestID with textProps.testID
  • app/components/Views/MultichainAccounts/AccountDetails/AccountTypes/BaseAccountDetails/index.tsx: replaced titleTestID with textProps.testID
  • app/components/UI/Compliance/AccessRestrictedModal/AccessRestrictedModal.tsx: replaced BottomSheetHeader titleTestID with textProps.testID
  • app/components/UI/Predict/components/PredictWithdrawUnavailableSheet/PredictWithdrawUnavailableSheet.tsx: replaced BottomSheetHeader titleTestID with textProps.testID
  • app/components/UI/Money/components/MoneyHeader/MoneyHeader.tsx: removed HeaderBaseVariant.Display and rendered an explicit HeadingLg title to preserve the display-style header
  • app/components/UI/Predict/components/PredictPreviewSheet/PredictPreviewSheet.tsx: removed BottomSheetHeaderVariant.Display and kept the custom header content left-aligned via wrapper props

BottomSheet / BottomSheetDialog: panGestureHandlerProps removed

The v42 release removes panGestureHandlerProps from the design-system BottomSheet and BottomSheetDialog APIs.

Migration: No direct @metamask/design-system-react-native call sites in mobile were using this prop. Remaining matches are local legacy component-library APIs, not the upgraded design-system API.

New additions available for future use:

  • IconName.FlashFilled: filled lightning bolt icon
  • SelectButtonSize: semantic size type for SelectButton

Changelog

CHANGELOG entry: null

Related issues

Fixes: No issue; maintenance upgrade for the stable MetaMask design system release.

Manual testing steps

Feature: Design system upgrade to v42.0.0

  Scenario: migrated design-system headers continue to render
    Given the app is built with @metamask/design-system-react-native 0.27.0
    When the user opens account details, smart account details, money, compliance, and predict preview sheet surfaces
    Then each migrated HeaderBase and BottomSheetHeader title renders with the expected test hooks and layout

  Scenario: package upgrade verification passes
    Given the branch contains the design system v42 package upgrade
    When `yarn lint:tsc` is run
    And the targeted Jest suites for migrated surfaces are run
    Then type-checking and tests should pass

Screenshots/Recordings

Before/After screenshots that affect UI in code comments

Tested BottomSheet with reanimated v4 upgrade and works as expected

mmds.bottomsheet.mov

Pre-merge author checklist

Performance checks (if applicable)

  • I've tested on Android
  • I've tested with a power user scenario
  • I've instrumented key operations with Sentry traces for production performance metrics

For performance guidelines and tooling, see the Performance Guide.

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

Low Risk
Mechanical API migrations on headers and sheets with stable test IDs; no auth, payments, or core transaction logic touched.

Overview
Bumps @metamask/design-system-react-native to ^0.27.0 (and design-system-shared to 0.20.0 via lockfile) to match design system v42 breaking header API changes.

Header migration: titleTestID is replaced by textProps={{ testID: ... }} on HeaderBase / BottomSheetHeader in account details, compliance, and predict withdraw surfaces. MoneyHeader switches from HeaderBase + display variant to HeaderRoot with title / titleProps. PredictPreviewSheet drops the display header variant and uses startAccessoryWrapperProps / style so custom header content stays left-aligned.

Tests: Snap CollapsibleSection expand test drops the Jest snapshot and asserts collapsed vs expanded content with toBeOnTheScreen; the old snapshot file is removed.

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

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

@metamaskbotv2 metamaskbotv2 Bot added the team-design-system All issues relating to design system in Mobile label May 29, 2026
@socket-security

socket-security Bot commented May 29, 2026

Copy link
Copy Markdown

Review the following changes in direct dependencies. Learn more about Socket for GitHub.

Diff Package Supply Chain
Security
Vulnerability Quality Maintenance License
Updatednpm/​@​metamask/​design-system-react-native@​0.26.0 ⏵ 0.27.098 +110084 +198 +1100

View full report

testID: MoneyHeaderTestIds.TITLE,
}}
/>
);

@georgewrmarshall georgewrmarshall Jun 1, 2026

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.

Before /After

No visual regressions

ImageImage

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

yessss

@georgewrmarshall georgewrmarshall force-pushed the chore/upgrade-design-system-v42 branch from 9623def to 00a7bd6 Compare June 1, 2026 16:31
Comment on lines +77 to +80
// Override internal styles that set width of start accessory to same size as close button,
// to allow for left aligned predict header content
startAccessoryWrapperProps={{ style: tw.style('w-0') }}
style={tw.style('gap-0')}

@georgewrmarshall georgewrmarshall Jun 1, 2026

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.

BottomSheetHeader now extends the full width and aligns with the edges of content allowing more of the title and description to be visible

Image

Before / After

ImageImage

@georgewrmarshall georgewrmarshall self-assigned this Jun 1, 2026
@georgewrmarshall georgewrmarshall force-pushed the chore/upgrade-design-system-v42 branch from 00a7bd6 to 5512ed2 Compare June 1, 2026 19:53

@cursor cursor Bot left a comment

Copy link
Copy Markdown
Contributor

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.

Autofix Details

Bugbot Autofix prepared a fix for the issue found in the latest run.

  • ✅ Fixed: New normalization code reinforces banned toMatchSnapshot pattern
    • Replaced the toMatchSnapshot call with explicit assertions, removed the normalization helpers, and deleted the external .snap file.

Create PR

Or push these changes by commenting:

@cursor push 3b8bc8114f
Preview (3b8bc8114f)
diff --git a/app/components/Snaps/SnapUIRenderer/components/__snapshots__/collapsible-section.test.ts.snap b/app/components/Snaps/SnapUIRenderer/components/__snapshots__/collapsible-section.test.ts.snap
deleted file mode 100644
--- a/app/components/Snaps/SnapUIRenderer/components/__snapshots__/collapsible-section.test.ts.snap
+++ /dev/null
@@ -1,346 +1,0 @@
-// Jest Snapshot v1, https://goo.gl/fbAQLP
-
-exports[`CollapsibleSection can expand 1`] = `
-<View
-  style={
-    [
-      {
-        "flexGrow": 1,
-        "minHeight": 667,
-      },
-      undefined,
-    ]
-  }
->
-  <View
-    style={
-      [
-        {},
-        {
-          "flexDirection": "column",
-          "flexGrow": 1,
-        },
-      ]
-    }
-  >
-    <RCTScrollView
-      style={
-        {
-          "marginBottom": 0,
-        }
-      }
-      testID="snap-ui-renderer__scrollview"
-    >
-      <View>
-        <View
-          accessibilityValue={
-            {
-              "max": undefined,
-              "min": undefined,
-              "now": undefined,
-              "text": undefined,
-            }
-          }
-          accessible={true}
-          focusable={false}
-          onClick={[Function]}
-          onResponderGrant={[Function]}
-          onResponderMove={[Function]}
-          onResponderRelease={[Function]}
-          onResponderTerminate={[Function]}
-          onResponderTerminationRequest={[Function]}
-          onStartShouldSetResponder={[Function]}
-        >
-          <View
-            backgroundColor="#f3f3f4"
-            gap={8}
-            style={
-              [
-                {
-                  "backgroundColor": "#f3f3f4",
-                  "gap": 8,
-                },
-                {
-                  "borderRadius": 8,
-                  "paddingBottom": 8,
-                  "paddingLeft": 16,
-                  "paddingRight": 16,
-                },
-              ]
-            }
-            testID="snaps-ui-collapsible-section"
-          >
-            <View
-              accessibilityState={
-                {
-                  "busy": undefined,
-                  "checked": undefined,
-                  "disabled": undefined,
-                  "expanded": undefined,
-                  "selected": undefined,
-                }
-              }
-              accessibilityValue={
-                {
-                  "max": undefined,
-                  "min": undefined,
-                  "now": undefined,
-                  "text": undefined,
-                }
-              }
-              accessible={true}
-              collapsable={false}
-              focusable={true}
-              onClick={[Function]}
-              onResponderGrant={[Function]}
-              onResponderMove={[Function]}
-              onResponderRelease={[Function]}
-              onResponderTerminate={[Function]}
-              onResponderTerminationRequest={[Function]}
-              onStartShouldSetResponder={[Function]}
-              style={
-                {
-                  "alignItems": "center",
-                  "display": "flex",
-                  "flexDirection": "row",
-                  "justifyContent": "space-between",
-                  "opacity": 1,
-                  "paddingBottom": 0,
-                  "paddingTop": 8,
-                }
-              }
-            >
-              <Text
-                accessibilityRole="text"
-                style={
-                  {
-                    "color": "#131416",
-                    "fontFamily": "Geist-Regular",
-                    "fontSize": 16,
-                    "letterSpacing": 0,
-                    "lineHeight": 24,
-                  }
-                }
-              >
-                My Section
-              </Text>
-              <SvgMock
-                fill="currentColor"
-                name="ArrowUp"
-                style={
-                  {
-                    "color": "#4459ff",
-                    "height": 16,
-                    "width": 16,
-                  }
-                }
-              />
-            </View>
-            <View
-              color="Default"
-              flexDirection="column"
-              gap={8}
-              justifyContent="flex-start"
-              style={
-                [
-                  {
-                    "color": "Default",
-                    "flexDirection": "column",
-                    "gap": 8,
-                    "justifyContent": "flex-start",
-                  },
-                  {
-                    "gap": 16,
-                    "margin": 16,
-                  },
-                ]
-              }
-            >
-              <View
-                style={
-                  [
-                    {
-                      "alignItems": "center",
-                      "borderRadius": 8,
-                      "display": "flex",
-                      "flexDirection": "row",
-                      "flexWrap": "wrap",
-                      "justifyContent": "space-between",
-                      "paddingBottom": 8,
-                      "paddingHorizontal": 8,
-                    },
-                    {
-                      "marginLeft": -8,
-                      "marginRight": -8,
-                      "paddingBottom": 0,
-                      "paddingTop": 0,
-                    },
-                  ]
-                }
-                testID="snap-ui-info-row"
-              >
-                <View
-                  style={
-                    {
-                      "alignItems": "center",
-                      "alignSelf": "flex-start",
-                      "display": "flex",
-                      "flexDirection": "row",
-                      "minHeight": 38,
-                      "paddingEnd": 4,
-                    }
-                  }
-                  testID="snap-ui-info-row-label-container"
-                >
-                  <Text
-                    accessibilityRole="text"
-                    style={
-                      {
-                        "color": "#131416",
-                        "fontFamily": "Geist-Medium",
-                        "fontSize": 16,
-                        "letterSpacing": 0,
-                        "lineHeight": 24,
-                      }
-                    }
-                    testID="snap-ui-info-row-label"
-                  >
-                    Row 1
-                  </Text>
-                </View>
-                <View
-                  testID="snap-ui-info-row-children-container"
-                >
-                  <Text
-                    accessibilityRole="text"
-                    style={
-                      {
-                        "color": "#131416",
-                        "fontFamily": "Geist-Regular",
-                        "fontSize": 16,
-                        "fontWeight": "400",
-                        "letterSpacing": 0,
-                        "lineHeight": 24,
-                        "textAlign": "left",
-                      }
-                    }
-                  >
-                    <Text
-                      accessibilityRole="text"
-                      style={
-                        {
-                          "color": "#131416",
-                          "fontFamily": "Geist-Regular",
-                          "fontSize": 16,
-                          "fontWeight": "400",
-                          "letterSpacing": 0,
-                          "lineHeight": 24,
-                          "textAlign": "left",
-                        }
-                      }
-                    >
-                      Foo
-                    </Text>
-                  </Text>
-                </View>
-              </View>
-              <View
-                style={
-                  [
-                    {
-                      "alignItems": "center",
-                      "borderRadius": 8,
-                      "display": "flex",
-                      "flexDirection": "row",
-                      "flexWrap": "wrap",
-                      "justifyContent": "space-between",
-                      "paddingBottom": 8,
-                      "paddingHorizontal": 8,
-                    },
-                    {
-                      "marginLeft": -8,
-                      "marginRight": -8,
-                      "paddingBottom": 0,
-                      "paddingTop": 0,
-                    },
-                  ]
-                }
-                testID="snap-ui-info-row"
-              >
-                <View
-                  style={
-                    {
-                      "alignItems": "center",
-                      "alignSelf": "flex-start",
-                      "display": "flex",
-                      "flexDirection": "row",
-                      "minHeight": 38,
-                      "paddingEnd": 4,
-                    }
-                  }
-                  testID="snap-ui-info-row-label-container"
-                >
-                  <Text
-                    accessibilityRole="text"
-                    style={
-                      {
-                        "color": "#131416",
-                        "fontFamily": "Geist-Medium",
-                        "fontSize": 16,
-                        "letterSpacing": 0,
-                        "lineHeight": 24,
-                      }
-                    }
-                    testID="snap-ui-info-row-label"
-                  >
-                    Row 2
-                  </Text>
-                </View>
-                <View
-                  testID="snap-ui-info-row-children-container"
-                >
-                  <Text
-                    accessibilityRole="text"
-                    style={
-                      {
-                        "color": "#131416",
-                        "fontFamily": "Geist-Regular",
-                        "fontSize": 16,
-                        "fontWeight": "400",
-                        "letterSpacing": 0,
-                        "lineHeight": 24,
-                        "textAlign": "left",
-                      }
-                    }
-                  >
-                    <Text
-                      accessibilityRole="text"
-                      style={
-                        {
-                          "color": "#131416",
-                          "fontFamily": "Geist-Regular",
-                          "fontSize": 16,
-                          "fontWeight": "400",
-                          "letterSpacing": 0,
-                          "lineHeight": 24,
-                          "textAlign": "left",
-                        }
-                      }
-                    >
-                      Bar
-                    </Text>
-                  </Text>
-                </View>
-              </View>
-            </View>
-          </View>
-        </View>
-      </View>
-    </RCTScrollView>
-  </View>
-  <View
-    data-renders={1}
-    testID="performance"
-  />
-</View>
-`;
\ No newline at end of file

diff --git a/app/components/Snaps/SnapUIRenderer/components/collapsible-section.test.ts b/app/components/Snaps/SnapUIRenderer/components/collapsible-section.test.ts
--- a/app/components/Snaps/SnapUIRenderer/components/collapsible-section.test.ts
+++ b/app/components/Snaps/SnapUIRenderer/components/collapsible-section.test.ts
@@ -1,10 +1,5 @@
 import { CollapsibleSection, Row, Text } from '@metamask/snaps-sdk/jsx';
 import { fireEvent } from '@testing-library/react-native';
-import { StyleSheet } from 'react-native';
-import type {
-  ReactTestRendererJSON,
-  ReactTestRendererNode,
-} from 'react-test-renderer';
 import { renderInterface } from '../testUtils';
 
 jest.mock('../../../../core/Engine/Engine', () => ({
@@ -18,39 +13,6 @@
   },
 }));
 
-type SnapshotNode = ReactTestRendererJSON | ReactTestRendererJSON[] | null;
-
-const normalizeSvgMockStyles = (
-  node: ReactTestRendererJSON,
-): ReactTestRendererJSON => {
-  node.children =
-    node.children?.map((child): ReactTestRendererNode => {
-      if (typeof child === 'string') {
-        return child;
-      }
-
-      return normalizeSvgMockStyles(child);
-    }) ?? null;
-
-  if (node.type === 'SvgMock') {
-    node.props.style = StyleSheet.flatten(node.props.style);
-  }
-
-  return node;
-};
-
-const normalizeSnapshot = (node: SnapshotNode): SnapshotNode => {
-  if (node === null) {
-    return null;
-  }
-
-  if (Array.isArray(node)) {
-    return node.map(normalizeSvgMockStyles);
-  }
-
-  return normalizeSvgMockStyles(node);
-};
-
 describe('CollapsibleSection', () => {
   it('renders', () => {
     const { getByTestId } = renderInterface(
@@ -73,7 +35,7 @@
   });
 
   it('can expand', () => {
-    const { toJSON, getByText } = renderInterface(
+    const { getByText } = renderInterface(
       CollapsibleSection({
         label: 'My Section',
         children: [
@@ -94,7 +56,8 @@
     fireEvent.press(section);
 
     expect(getByText('Row 1')).toBeDefined();
-
-    expect(normalizeSnapshot(toJSON())).toMatchSnapshot();
+    expect(getByText('Row 2')).toBeDefined();
+    expect(getByText('Foo')).toBeDefined();
+    expect(getByText('Bar')).toBeDefined();
   });
 });

You can send follow-ups to the cloud agent here.

Comment thread app/components/Snaps/SnapUIRenderer/components/collapsible-section.test.ts Outdated

@cursor cursor Bot left a comment

Copy link
Copy Markdown
Contributor

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.

Fix All in Cursor

Bugbot Autofix prepared a fix for the issue found in the latest run.

  • ✅ Fixed: New test assertions use weak matchers instead of toBeOnTheScreen
    • Replaced toBeNull/toBeDefined assertions with not.toBeOnTheScreen()/toBeOnTheScreen() in collapsible-section.test.ts per project guidelines.

Create PR

Or push these changes by commenting:

@cursor push 7c8976d095
Preview (7c8976d095)
diff --git a/app/components/Snaps/SnapUIRenderer/components/collapsible-section.test.ts b/app/components/Snaps/SnapUIRenderer/components/collapsible-section.test.ts
--- a/app/components/Snaps/SnapUIRenderer/components/collapsible-section.test.ts
+++ b/app/components/Snaps/SnapUIRenderer/components/collapsible-section.test.ts
@@ -53,14 +53,14 @@
 
     const section = getByText('My Section');
 
-    expect(queryByText('Row 1')).toBeNull();
-    expect(queryByText('Foo')).toBeNull();
+    expect(queryByText('Row 1')).not.toBeOnTheScreen();
+    expect(queryByText('Foo')).not.toBeOnTheScreen();
 
     fireEvent.press(section);
 
-    expect(getByText('Row 1')).toBeDefined();
-    expect(getByText('Foo')).toBeDefined();
-    expect(getByText('Row 2')).toBeDefined();
-    expect(getByText('Bar')).toBeDefined();
+    expect(getByText('Row 1')).toBeOnTheScreen();
+    expect(getByText('Foo')).toBeOnTheScreen();
+    expect(getByText('Row 2')).toBeOnTheScreen();
+    expect(getByText('Bar')).toBeOnTheScreen();
   });
 });

You can send follow-ups to the cloud agent here.

Reviewed by Cursor Bugbot for commit 229d175. Configure here.

Comment thread app/components/Snaps/SnapUIRenderer/components/collapsible-section.test.ts Outdated
@georgewrmarshall georgewrmarshall marked this pull request as ready for review June 1, 2026 22:35
@georgewrmarshall georgewrmarshall requested review from a team as code owners June 1, 2026 22:35
@github-actions github-actions Bot added the risk:low AI analysis: low risk label Jun 1, 2026
brianacnguyen
brianacnguyen previously approved these changes Jun 1, 2026
@github-actions github-actions Bot added risk:medium AI analysis: medium risk and removed risk:low AI analysis: low risk labels Jun 2, 2026
gantunesr
gantunesr previously approved these changes Jun 2, 2026
caieu
caieu previously approved these changes Jun 2, 2026
Matt561
Matt561 previously approved these changes Jun 2, 2026
Comment thread app/components/Snaps/SnapUIRenderer/components/collapsible-section.test.ts Outdated
Upgrade @metamask/design-system-react-native to ^0.27.0 for the MetaMask design system v42.0.0 release.

Apply the 0.26.0 to 0.27.0 migration for HeaderBase and BottomSheetHeader by replacing titleTestID with textProps.testID and removing variant-based title APIs.
@georgewrmarshall georgewrmarshall requested a review from Matt561 June 3, 2026 19:13
Matt561
Matt561 previously approved these changes Jun 3, 2026
@github-actions github-actions Bot added risk:low AI analysis: low risk and removed risk:medium AI analysis: medium risk labels Jun 3, 2026
brianacnguyen
brianacnguyen previously approved these changes Jun 3, 2026
Comment thread app/components/Snaps/SnapUIRenderer/components/collapsible-section.test.ts Outdated
caieu
caieu previously approved these changes Jun 3, 2026
…tion.test.ts

Co-authored-by: Maarten Zuidhoorn <maarten@zuidhoorn.com>
@github-actions github-actions Bot added risk:medium AI analysis: medium risk and removed risk:low AI analysis: low risk labels Jun 3, 2026
@github-actions

github-actions Bot commented Jun 3, 2026

Copy link
Copy Markdown
Contributor

🔍 Smart E2E Test Selection

  • Selected E2E tags: SmokeMoney, SmokePredictions, SmokeWalletPlatform, SmokeConfirmations, SmokeAccounts, SmokeSnaps
  • Selected Performance tags: None (no tests recommended)
  • Risk Level: medium
  • AI Confidence: 82%
click to see 🤖 AI reasoning details

E2E Test Selection:
The PR upgrades @metamask/design-system-react-native from ^0.26.0 to ^0.27.0 and adapts several components to the new API. The key concern for E2E tests is that testID prop passing has changed (from titleTestID to textProps={{ testID: ... }}), which means E2E tests that query elements by those testIDs need to be verified to still work correctly.

Affected areas:

  1. MoneyHeader.tsx - Migrated from HeaderBase/HeaderBaseVariant.Display to HeaderRoot with new title and titleProps API. This affects the Money/Card screen header → SmokeMoney required.

  2. PredictPreviewSheet.tsx - Removed BottomSheetHeaderVariant.Display and replaced with style overrides. This affects the Predictions preview sheet UI → SmokePredictions required. Per tag description, also select SmokeWalletPlatform (Trending section) and SmokeConfirmations (on-chain transactions).

  3. PredictWithdrawUnavailableSheet.tsx - Changed titleTestID to textProps={{ testID: ... }} in BottomSheetHeader. Affects Predictions withdraw flow → SmokePredictions.

  4. AccessRestrictedModal.tsx - Changed titleTestID to textProps={{ testID: ... }}. This modal is used for geographic restriction handling in Predictions (and potentially Money) → relevant to SmokePredictions and SmokeMoney.

  5. BaseAccountDetails/index.tsx - Changed titleTestID to textProps={{ testID: ... }} in HeaderBase. This is the account details screen header → SmokeAccounts required.

  6. SmartAccountModal.tsx - Same HeaderBase testID API change. Affects smart account modal → SmokeAccounts.

  7. collapsible-section.test.ts + snapshot - Unit test improvements for Snaps collapsible section. While this is a unit test change, the snapshot update and test logic change for the Snaps UI renderer warrants running SmokeSnaps to ensure the Snaps UI still works correctly end-to-end.

The testID prop changes are particularly important because E2E tests use these selectors to find and interact with UI elements. If the new design system version renders testIDs differently (e.g., on a different DOM node), E2E tests could fail.

Performance Test Selection:
The changes are primarily API adaptations to a design system upgrade (component prop renaming). While the design system version bumped, the changes are cosmetic/structural (prop name changes, component swaps) rather than performance-impacting. No changes to rendering loops, data fetching, state management, or critical performance paths. No performance test tags are warranted.

View GitHub Actions results

@georgewrmarshall georgewrmarshall added this pull request to the merge queue Jun 4, 2026
Merged via the queue into main with commit 65243eb Jun 4, 2026
211 of 213 checks passed
@georgewrmarshall georgewrmarshall deleted the chore/upgrade-design-system-v42 branch June 4, 2026 17:20
@github-actions github-actions Bot locked and limited conversation to collaborators Jun 4, 2026
@metamaskbotv2 metamaskbotv2 Bot added the release-7.81.0 Issue or pull request that will be included in release 7.81.0 label Jun 4, 2026
@mm-token-exchange-service mm-token-exchange-service Bot added the INVALID-PR-TEMPLATE PR's body doesn't match template label Jun 4, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

INVALID-PR-TEMPLATE PR's body doesn't match template release-7.81.0 Issue or pull request that will be included in release 7.81.0 risk:medium AI analysis: medium risk size-S team-design-system All issues relating to design system in Mobile

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants