Skip to content

chore: convert ui core files to TypeScript#44535

Draft
itsyoboieltr wants to merge 1 commit into
mainfrom
ts-migration-ui-core-1
Draft

chore: convert ui core files to TypeScript#44535
itsyoboieltr wants to merge 1 commit into
mainfrom
ts-migration-ui-core-1

Conversation

@itsyoboieltr

Copy link
Copy Markdown
Contributor

Description

Converts the UI core files listed in MetaMask/MetaMask-planning#7384 from JavaScript to TypeScript, including colocated tests and the with-modal-props snapshot.

Also removes the converted paths from the TypeScript migration dashboard.

Changelog

CHANGELOG entry: null

Related issues

Fixes: MetaMask/MetaMask-planning#7384

Manual testing steps

  1. Build and run the extension from this branch.
  2. Unlock or create a wallet.
  3. Open the account menu and token list, then start a send flow.
  4. Verify the UI loads without runtime errors and the transaction confirmation modal opens normally.

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.

Validation

  • yarn lint:changed:fix
  • yarn test:unit ui/helpers/higher-order-components/with-modal-props/with-modal-props.test.tsx ui/helpers/utils/accounts.test.ts ui/helpers/utils/common.util.test.ts ui/helpers/utils/export-utils.test.ts ui/helpers/utils/gas.test.ts ui/helpers/utils/metrics.test.ts ui/helpers/utils/token-util.test.ts ui/helpers/utils/transactions.util.test.ts ui/helpers/utils/util.test.ts ui/selectors/metametrics.test.ts

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

@metamask-ci

metamask-ci Bot commented Jul 16, 2026

Copy link
Copy Markdown
Contributor

✨ Files requiring CODEOWNER review ✨

🫰 @MetaMask/core-platform (1 files, +0 -0)
  • 📁 ui/
    • 📁 helpers/
      • 📁 constants/
        • 📁 snaps/
          • 📄 index.ts

@metamask-ci metamask-ci Bot added the team-extension-platform Extension Platform team label Jul 16, 2026
@sonarqubecloud

Copy link
Copy Markdown

Quality Gate Failed Quality Gate failed

Failed conditions
68.1% Coverage on New Code (required ≥ 80%)
C Security Rating on New Code (required ≥ A)
D Reliability Rating on New Code (required ≥ A)

See analysis details on SonarQube Cloud

💡 Need a hand with PR review? Try Gitar by Sonar!

@metamask-ci

metamask-ci Bot commented Jul 16, 2026

Copy link
Copy Markdown
Contributor
Builds ready [de1d0f2]
Deprecated Browserify fallback builds
⚡ Performance Benchmarks (Total: 🟢 16 pass · 🟡 8 warn · 🔴 0 fail)

Baseline (latest main): 8b84374 | Date: 7/16/2026 | Pipeline: 29510918260 | Baseline logs

Interaction Benchmarks · Samples: 5
Benchmarkchrome-webpackfirefox-webpack
loadNewAccount
[Sentry log · main/release]
🟢 [CI log]🟢 [CI log]
confirmTx
[Sentry log · main/release]
🟡 [CI log]🟢 [CI log]
bridgeUserActions
[Sentry log · main/release]
🟢 [CI log]🟢 [CI log]

📈 Results compared to the previous 5 runs on main

  • loadNewAccount/inp: -17%
  • loadNewAccount/lcp: -17%
  • confirmTx/longTaskTotalDuration: -25%
  • confirmTx/longTaskMaxDuration: -32%
  • confirmTx/tbt: -49%
  • confirmTx/inp: -33%
  • confirmTx/fcp: +13%
  • confirmTx/lcp: +84%
  • bridgeUserActions/bridge_load_page: +21%
  • bridgeUserActions/bridge_load_asset_picker: -29%
  • bridgeUserActions/longTaskCount: -38%
  • bridgeUserActions/longTaskTotalDuration: -46%
  • bridgeUserActions/longTaskMaxDuration: -24%
  • bridgeUserActions/tbt: -66%
  • bridgeUserActions/inp: -23%
  • bridgeUserActions/fcp: -13%
  • loadNewAccount/load_new_account: +110%
  • loadNewAccount/total: +110%
  • loadNewAccount/inp: +108%
  • loadNewAccount/fcp: -48%
  • loadNewAccount/lcp: +1158%
  • confirmTx/confirm_tx: +10%
  • confirmTx/longTaskCount: -100%
  • confirmTx/longTaskTotalDuration: -100%
  • confirmTx/longTaskMaxDuration: -100%
  • confirmTx/tbt: -100%
  • confirmTx/total: +10%
  • confirmTx/fcp: -42%
  • confirmTx/lcp: +1250%
  • bridgeUserActions/bridge_load_page: +59%
  • bridgeUserActions/bridge_load_asset_picker: +47%
  • bridgeUserActions/longTaskCount: -100%
  • bridgeUserActions/longTaskTotalDuration: -100%
  • bridgeUserActions/longTaskMaxDuration: -100%
  • bridgeUserActions/tbt: -100%
  • bridgeUserActions/total: +174%
  • bridgeUserActions/inp: -13%
  • bridgeUserActions/fcp: -44%
  • bridgeUserActions/lcp: +1255%

🌐 Core Web Vitals — 🟢 good · 🟡 needs improvement · 🔴 poor (web.dev thresholds)

  • 🟡 confirmTx/FCP: p75 1.8s
Startup Benchmarks · Samples: 100
Benchmarkchrome-webpackfirefox-webpack
startupStandardHome
[Sentry log · main/release]
🟢 [CI log]🟡 [CI log]
🟡 loadScripts
startupPowerUserHome
[Sentry log · main/release]
🟡 [CI log]

📈 Results compared to the previous 5 runs on main

  • startupStandardHome/domInteractive: -28%
  • startupStandardHome/initialActions: +11%
  • startupStandardHome/fcp: -26%
  • startupPowerUserHome/uiStartup: -16%
  • startupPowerUserHome/domInteractive: -17%
  • startupPowerUserHome/backgroundConnect: -14%
  • startupPowerUserHome/initialActions: +11%
  • startupPowerUserHome/loadScripts: -11%
  • startupPowerUserHome/setupStore: -92%
  • startupPowerUserHome/fcp: -18%
  • startupPowerUserHome/lcp: -15%

🌐 Core Web Vitals — 🟢 good · 🟡 needs improvement · 🔴 poor (web.dev thresholds)

  • 🟡 startupPowerUserHome/LCP: p75 2.8s
User Journey Benchmarks · Samples: 5 · mock API
Benchmarkchrome-webpackfirefox-webpack
onboardingImportWallet
[Sentry log · main/release]
🟢 [CI log]🟢 [CI log]
onboardingNewWallet
[Sentry log · main/release]
🟢 [CI log]🟢 [CI log]
assetDetails
[Sentry log · main/release]
🟡 [CI log]🟡 [CI log]
solanaAssetDetails
[Sentry log · main/release]
🟢 [CI log]🟡 [CI log]
importSrpHome
[Sentry log · main/release]
🟡 [CI log]🟢 [CI log]
sendTransactions
[Sentry log · main/release]
🟢 [CI log]🟢 [CI log]
swap
[Sentry log · main/release]
🟢 [CI log]🟡 [CI log]

📈 Results compared to the previous 5 runs on main

  • onboardingImportWallet/confirmSrpToPwForm: +12%
  • onboardingImportWallet/pwFormToMetricsScreen: +14%
  • onboardingImportWallet/doneButtonToHomeScreen: -86%
  • onboardingImportWallet/openAccountMenuToAccountListLoaded: -73%
  • onboardingImportWallet/longTaskCount: -86%
  • onboardingImportWallet/longTaskTotalDuration: -96%
  • onboardingImportWallet/longTaskMaxDuration: -92%
  • onboardingImportWallet/tbt: -100%
  • onboardingImportWallet/total: -84%
  • onboardingNewWallet/srpButtonToPwForm: -19%
  • onboardingNewWallet/doneButtonToAssetList: -38%
  • onboardingNewWallet/longTaskCount: -100%
  • onboardingNewWallet/longTaskTotalDuration: -100%
  • onboardingNewWallet/longTaskMaxDuration: -100%
  • onboardingNewWallet/tbt: -100%
  • onboardingNewWallet/total: -35%
  • solanaAssetDetails/assetClickToPriceChart: -61%
  • solanaAssetDetails/total: -61%
  • solanaAssetDetails/inp: -13%
  • solanaAssetDetails/cls: -86%
  • importSrpHome/loginToHomeScreen: -25%
  • importSrpHome/openAccountMenuAfterLogin: -29%
  • importSrpHome/homeAfterImportWithNewWallet: -67%
  • importSrpHome/longTaskCount: -50%
  • importSrpHome/longTaskTotalDuration: -51%
  • importSrpHome/tbt: -53%
  • importSrpHome/total: -62%
  • importSrpHome/inp: -24%
  • importSrpHome/lcp: -11%
  • importSrpHome/cls: -50%
  • sendTransactions/openSendPageFromHome: -11%
  • sendTransactions/selectTokenToSendFormLoaded: -24%
  • sendTransactions/reviewTransactionToConfirmationPage: -98%
  • sendTransactions/longTaskCount: -100%
  • sendTransactions/longTaskTotalDuration: -100%
  • sendTransactions/longTaskMaxDuration: -100%
  • sendTransactions/tbt: -100%
  • sendTransactions/total: -95%
  • sendTransactions/inp: -25%
  • sendTransactions/cls: -53%
  • swap/openSwapPageFromHome: -19%
  • swap/fetchAndDisplaySwapQuotes: +107%
  • swap/longTaskTotalDuration: -16%
  • swap/longTaskMaxDuration: -16%
  • swap/tbt: -61%
  • swap/total: +105%
  • swap/lcp: -64%
  • swap/cls: -86%

🌐 Core Web Vitals — 🟢 good · 🟡 needs improvement · 🔴 poor (web.dev thresholds)

  • 🟡 assetDetails/FCP: p75 2.0s
  • 🟡 importSrpHome/INP: p75 264ms
  • 🟡 importSrpHome/FCP: p75 1.8s
  • 🟡 assetDetails/FCP: p75 1.9s
  • 🟡 solanaAssetDetails/FCP: p75 1.9s
  • 🔴 swap/INP: p75 560ms
Dapp Page Load Benchmarks · Samples: 100
Benchmarkchrome-webpack
dappPageLoad
[Sentry log · main/release]
🟢 [CI log]

📈 Results compared to the previous 5 runs on main

  • dappPageLoad/pageLoadTime: -32%
  • dappPageLoad/domContentLoaded: -29%
  • dappPageLoad/firstPaint: -24%
  • dappPageLoad/firstContentfulPaint: -24%
Bundle size diffs
  • background: 131 Bytes (0%)
  • ui: -130 Bytes (0%)
  • common: 0 Bytes (0%)
  • other: 0 Bytes (0%)
  • contentScripts: 12 Bytes (0%)
  • zip: -112 Bytes (0%)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size-XL team-extension-platform Extension Platform team

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant