Skip to content

Conversation

@OGPoyraz
Copy link
Member

@OGPoyraz OGPoyraz commented Nov 25, 2025

Description

Open in GitHub Codespaces

This PR aims to update placeholder text in send flow recipient component.

Changelog

CHANGELOG entry: Update recipient placeholder text in send

Related issues

Fixes: https://github.com/MetaMask/MetaMask-planning/issues/6257

Manual testing steps

  1. Go to send pick any asset
  2. See new placeholder text introduced in the component

Screenshots/Recordings

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

Updates recipient input placeholder to support addresses or names, with i18n key changes and e2e selector update.

  • Send flow UI:
    • recipient-input.tsx: Switches placeholder to t('recipientPlaceholderText') ("Enter or paste an address or name").
  • i18n:
    • Remove recipientPlaceholder across locales.
    • Add recipientPlaceholderText in app/_locales/en/messages.json and en_GB with updated copy.
  • Tests:
    • send-page.ts: Update input selector to new placeholder text.

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

@OGPoyraz OGPoyraz requested a review from a team as a code owner November 25, 2025 09:57
@metamaskbot metamaskbot added the team-confirmations Push issues to confirmations team label Nov 25, 2025
@OGPoyraz OGPoyraz enabled auto-merge November 25, 2025 09:57
@metamaskbot
Copy link
Collaborator

metamaskbot commented Nov 25, 2025

✨ Files requiring CODEOWNER review ✨

@MetaMask/confirmations (1 files, +1 -1)
  • 📁 ui/
    • 📁 pages/
      • 📁 confirmations/
        • 📁 components/
          • 📁 send/
            • 📁 recipient-input/
              • 📄 recipient-input.tsx +1 -1

🧪 @MetaMask/qa (1 files, +1 -1)
  • 📁 test/
    • 📁 e2e/
      • 📁 page-objects/
        • 📁 pages/
          • 📁 send/
            • 📄 send-page.ts +1 -1

@OGPoyraz OGPoyraz requested a review from a team as a code owner November 25, 2025 10:00
@github-actions github-actions bot added size-S and removed size-XS labels Nov 25, 2025
"recipientPlaceholder": {
"message": "Enter or paste a valid address"
"recipientPlaceholderText": {
"message": "Enter or paste an address or name"
Copy link

Choose a reason for hiding this comment

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

Bug: Missing translation key in non-English locale files

The translation key was renamed from recipientPlaceholder to recipientPlaceholderText in English locale files and the component code, but all other locale files (German, Spanish, French, Greek, Irish, etc.) still use the old key name. This causes the placeholder text to break for non-English users since the translation system cannot find recipientPlaceholderText in their locale files.

Fix in Cursor Fix in Web

Copy link

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

Bug: Missing translation key in non-English locales

The translation key recipientPlaceholderText was added only to English locales but not to non-English locales (de, el, es, fr, ga, hi, id, ja, ko, pt, ru, tl, tr, vi, zh_CN). The code in recipient-input.tsx now references t('recipientPlaceholderText'), but this key doesn't exist in most locale files. Users with non-English language settings will see broken placeholder text or fallback behavior instead of properly translated text.

app/_locales/de/messages.json#L4989-L4999

"description": "Page title when viewing addresses for receiving funds"
},
"recipient": {
"message": "Empfänger"
},
"recipientAddressPlaceholderNew": {
"message": "Öffentliche Adresse (0x) oder Domainname eingeben"
},
"recipientEditAriaLabel": {
"message": "Empfänger bearbeiten"
},

app/_locales/es/messages.json#L4989-L4999

"description": "Page title when viewing addresses for receiving funds"
},
"recipient": {
"message": "Destinatario"
},
"recipientAddressPlaceholderNew": {
"message": "Ingrese la dirección pública (0x) o el nombre de dominio"
},
"recipientEditAriaLabel": {
"message": "Editar destinatario"
},

app/_locales/fr/messages.json#L4989-L4999

"description": "Page title when viewing addresses for receiving funds"
},
"recipient": {
"message": "Destinataire"
},
"recipientAddressPlaceholderNew": {
"message": "Saisissez l’adresse publique (0x) ou le nom de domaine"
},
"recipientEditAriaLabel": {
"message": "Modifier le destinataire"
},

Fix in Cursor Fix in Web


@metamaskbot
Copy link
Collaborator

Builds ready [993e27c]
UI Startup Metrics (1237 ± 97 ms)
PlatformBuildTypePageMetricMean (ms)Min (ms)Max (ms)Std Dev (ms)P 75 (ms)P 95 (ms)
ChromeBrowserifyStandard HomeuiStartup1237103015919712711432
load104888212938610791219
domContentLoaded104187712808510711209
domInteractive2615107222195
firstPaint54995130440210201140
backgroundConnect21219326511215236
firstReactRender29197693146
getState341763104055
initialActions104112
loadScripts8376731058838661004
setupStore1272751425
numNetworkReqs1257820573
BrowserifyPower User HomeuiStartup20571595294727322402572
load98288114521379651396
domContentLoaded96887014291389461385
domInteractive35171903630142
firstPaint5948514713929441319
backgroundConnect22019826210224242
firstReactRender86441411997121
getState16813224925184217
initialActions109112
loadScripts76567312271377431182
setupStore2194792640
numNetworkReqs1426938073180359
WebpackStandard HomeuiStartup825701104579860992
load64955784574692801
domContentLoaded64455383773688794
domInteractive2715126242291
firstPaint22584792163205668
backgroundConnect1063051118
firstReactRender26194263139
getState241260113047
initialActions104112
loadScripts64155183572686786
setupStore1062731217
numNetworkReqs1257720570
WebpackPower User HomeuiStartup16051210208122017621978
load65458498591654907
domContentLoaded64457797891644901
domInteractive35171383029129
firstPaint26996986195264689
backgroundConnect1474361724
firstReactRender83431151594102
getState14612218915156176
initialActions107112
loadScripts64257597089642892
setupStore21872152352
numNetworkReqs1616441178198385
FirefoxBrowserifyStandard HomeuiStartup12121071154610412681435
load101291112627310641140
domContentLoaded101091112627310631140
domInteractive50311312571109
firstPaint------
backgroundConnect3520120173779
firstReactRender22175882236
getState96666917
initialActions102122
loadScripts98989611766510351113
setupStore135174201037
numNetworkReqs1155814652
BrowserifyPower User HomeuiStartup24281936310924625952843
load1090917153813811071462
domContentLoaded1089916153713911071462
domInteractive11429458106110436
firstPaint------
backgroundConnect852634947103188
firstReactRender85421562196124
getState22632924189257667
initialActions2140427
loadScripts1060901151613610721408
setupStore1627758202157665
numNetworkReqs101622845997250
WebpackStandard HomeuiStartup14421261190513515041741
load1221104115629913021392
domContentLoaded1221104115619913021392
domInteractive52261863466131
firstPaint------
backgroundConnect40191192041109
firstReactRender26207182833
getState126118141043
initialActions103012
loadScripts1197102415359412801344
setupStore164191261175
numNetworkReqs1156615658
WebpackPower User HomeuiStartup27942077375332630373443
load13651096196419113651847
domContentLoaded13651096196219113641847
domInteractive11529590111107440
firstPaint------
backgroundConnect1052650164124213
firstReactRender84402162295115
getState294761292254494787
initialActions516212337
loadScripts13311078189419013291813
setupStore1299878176124569
numNetworkReqs96542975678241
📊 Page Load Benchmark Results

Current Commit: 993e27c | Date: 11/25/2025

📄 Localhost MetaMask Test Dapp

Samples: 100

Summary

  • pageLoadTime-> current mean value: 1.03s (±37ms) 🟡 | historical mean value: 1.03s ⬇️ (historical data)
  • domContentLoaded-> current mean value: 717ms (±34ms) 🟢 | historical mean value: 721ms ⬇️ (historical data)
  • firstContentfulPaint-> current mean value: 77ms (±12ms) 🟢 | historical mean value: 81ms ⬇️ (historical data)

📈 Detailed Results

Metric Mean Std Dev Min Max P95 P99
pageLoadTime 1.03s 37ms 1.00s 1.31s 1.07s 1.31s
domContentLoaded 717ms 34ms 696ms 971ms 749ms 971ms
firstPaint 77ms 12ms 60ms 180ms 88ms 180ms
firstContentfulPaint 77ms 12ms 60ms 180ms 88ms 180ms
largestContentfulPaint 0ms 0ms 0ms 0ms 0ms 0ms
Bundle size diffs [🚨 Warning! Bundle size has increased!]
  • background: 970 Bytes (0.02%)
  • ui: 5 Bytes (0%)
  • common: 27 Bytes (0%)

@metamaskbot
Copy link
Collaborator

Builds ready [db9bea1]
UI Startup Metrics (1263 ± 130 ms)
PlatformBuildTypePageMetricMean (ms)Min (ms)Max (ms)Std Dev (ms)P 75 (ms)P 95 (ms)
ChromeBrowserifyStandard HomeuiStartup12631021165013013321519
load101884212929910631199
domContentLoaded101183712819810571192
domInteractive2514101202185
firstPaint691106130139310301171
backgroundConnect20017724112205223
firstReactRender35205883851
getState57191632663111
initialActions105114
loadScripts8196471086958491002
setupStore1354361525
numNetworkReqs41271513530145
BrowserifyPower User HomeuiStartup22641838293726224402771
load1026904147313610411396
domContentLoaded1012896146513810261390
domInteractive36171813430142
firstPaint57212314374069571363
backgroundConnect25820360099229544
firstReactRender924515325112134
getState20213070489211264
initialActions103112
loadScripts80569512271368221180
setupStore221061112448
numNetworkReqs1427039674180322
WebpackStandard HomeuiStartup86774713611128751153
load641566103593664854
domContentLoaded636562102692661846
domInteractive29161392822113
firstPaint230751035181210629
backgroundConnect952941018
firstReactRender3720184223890
getState5219101246995
initialActions104112
loadScripts634560101790659837
setupStore1464681540
numNetworkReqs41281493430144
WebpackPower User HomeuiStartup18751318246521020382270
load6805731207108690957
domContentLoaded6715671200109682950
domInteractive37171693136119
firstPaint2531051215176253666
backgroundConnect52863112719503
firstReactRender914514623110133
getState18013264753188237
initialActions103112
loadScripts6685651191107679940
setupStore22761132550
numNetworkReqs1636641777196398
FirefoxBrowserifyStandard HomeuiStartup14191154212219615371772
load1074914150011711271338
domContentLoaded1073912149911711271338
domInteractive58301723382134
firstPaint------
backgroundConnect64202284674181
firstReactRender27186593146
getState259167212256
initialActions103122
loadScripts1045896147610910811304
setupStore247188242050
numNetworkReqs39281272732122
BrowserifyPower User HomeuiStartup27252047422139528953611
load1183974236020511771572
domContentLoaded1182974236020511761572
domInteractive12931449102121416
firstPaint------
backgroundConnect1333357193139294
firstReactRender873813921101126
getState24893910180253688
initialActions218123
loadScripts1144958188317711411532
setupStore20313802219273706
numNetworkReqs102623156877304
WebpackStandard HomeuiStartup18111461324723718992284
load14211186294920414711763
domContentLoaded14211185294920414711763
domInteractive83313115096165
firstPaint------
backgroundConnect80303905790164
firstReactRender342294103749
getState241471102547
initialActions204123
loadScripts13891160291819914411721
setupStore2811179252682
numNetworkReqs40281272832124
WebpackPower User HomeuiStartup30442171500865932354516
load14911202287642815852576
domContentLoaded14901202287642815852575
domInteractive14831910193103835
firstPaint------
backgroundConnect139351137150148319
firstReactRender87402272992130
getState24855944195276708
initialActions611031538
loadScripts14331142285840314332463
setupStore1659798195216639
numNetworkReqs101642606078249
📊 Page Load Benchmark Results

Current Commit: db9bea1 | Date: 11/25/2025

📄 Localhost MetaMask Test Dapp

Samples: 100

Summary

  • pageLoadTime-> current mean value: 1.05s (±41ms) 🟡 | historical mean value: 1.03s ⬆️ (historical data)
  • domContentLoaded-> current mean value: 732ms (±37ms) 🟢 | historical mean value: 721ms ⬆️ (historical data)
  • firstContentfulPaint-> current mean value: 79ms (±15ms) 🟢 | historical mean value: 81ms ⬇️ (historical data)

📈 Detailed Results

Metric Mean Std Dev Min Max P95 P99
pageLoadTime 1.05s 41ms 1.01s 1.36s 1.08s 1.36s
domContentLoaded 732ms 37ms 699ms 1.01s 760ms 1.01s
firstPaint 79ms 15ms 64ms 212ms 88ms 212ms
firstContentfulPaint 79ms 15ms 64ms 212ms 88ms 212ms
largestContentfulPaint 0ms 0ms 0ms 0ms 0ms 0ms
Bundle size diffs [🚨 Warning! Bundle size has increased!]
  • background: 53 Bytes (0%)
  • ui: 4 Bytes (0%)
  • common: 27 Bytes (0%)

Copy link

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

Bug: Missing translation key in non-English locales

The translation key recipientPlaceholder was removed from all non-English locales (de, el, es, fr, ga, hi, id, ja, ko, pt, ru, tl, tr, vi, zh_CN) but the new key recipientPlaceholderText wasn't added to these files. The code now references recipientPlaceholderText, which only exists in English locales, causing the placeholder text to be missing or display incorrectly for users in non-English languages.

app/_locales/de/messages.json#L4996-L4997

},
"recoveryPhraseReminderBackupStart": {

app/_locales/es/messages.json#L4996-L4997

},
"recoveryPhraseReminderBackupStart": {

app/_locales/fr/messages.json#L4996-L4997

},
"recoveryPhraseReminderBackupStart": {

Fix in Cursor Fix in Web


@metamaskbot
Copy link
Collaborator

Builds ready [10c0ddb]
UI Startup Metrics (1333 ± 131 ms)
PlatformBuildTypePageMetricMean (ms)Min (ms)Max (ms)Std Dev (ms)P 75 (ms)P 95 (ms)
ChromeBrowserifyStandard HomeuiStartup13331073165713113981593
load1054855133110311131237
domContentLoaded1047849131910311081229
domInteractive29151432821103
firstPaint53378124040010191203
backgroundConnect21519525711222235
firstReactRender40257294457
getState66231872977127
initialActions106114
loadScripts84065110781008951021
setupStore1474071629
numNetworkReqs41281463330141
BrowserifyPower User HomeuiStartup22881811324628524842781
load99386317021519991364
domContentLoaded97985416961529821350
domInteractive35161583130125
firstPaint7139815593839471349
backgroundConnect244185696116216655
firstReactRender974714926121135
getState224147734119220648
initialActions104113
loadScripts78566914861497811150
setupStore1995592240
numNetworkReqs1407238669179302
WebpackStandard HomeuiStartup88473413211159101168
load65456889488700861
domContentLoaded65056488487696854
domInteractive27151312423103
firstPaint26385891186238703
backgroundConnect1153771031
firstReactRender4123211314189
getState5116123247397
initialActions106112
loadScripts64756287585694843
setupStore1374561323
numNetworkReqs41281463430142
WebpackPower User HomeuiStartup19271396258326320682398
load6905951120100700950
domContentLoaded6805851111101682943
domInteractive38191783235125
firstPaint28384888191329681
backgroundConnect105860019040578
firstReactRender944814823111132
getState198134727114185648
initialActions104112
loadScripts677583110199680934
setupStore221053122549
numNetworkReqs1526739974195321
FirefoxBrowserifyStandard HomeuiStartup13681168193116014291713
load1042928154010110901248
domContentLoaded1041928154010110891248
domInteractive52301642973108
firstPaint------
backgroundConnect58222654260158
firstReactRender2718101112948
getState231083112539
initialActions207123
loadScripts101991015129710461229
setupStore259195282066
numNetworkReqs39281262632122
BrowserifyPower User HomeuiStartup27222088543145028303330
load11551023271619411611474
domContentLoaded11541016271619511611474
domInteractive1243850294123387
firstPaint------
backgroundConnect137391057155119380
firstReactRender954833034106145
getState31462901213478784
initialActions207123
loadScripts1123998255318311301425
setupStore164101064193175657
numNetworkReqs101593186781308
WebpackStandard HomeuiStartup17081405226818718232062
load13251160164310113871528
domContentLoaded13241160164310113861528
domInteractive68282503887142
firstPaint------
backgroundConnect78302474492178
firstReactRender33228093550
getState3010210312892
initialActions213123
loadScripts1292113215619413571494
setupStore33102083630122
numNetworkReqs41281302737123
WebpackPower User HomeuiStartup29362177813380730504335
load14821169626260515962528
domContentLoaded14821169626160515962528
domInteractive11232111413796430
firstPaint------
backgroundConnect127261102165129262
firstReactRender83382142794129
getState27574876211352768
initialActions3162827
loadScripts14281135624457815112387
setupStore1557941192176591
numNetworkReqs100582496082244
📊 Page Load Benchmark Results

Current Commit: 10c0ddb | Date: 11/26/2025

📄 Localhost MetaMask Test Dapp

Samples: 100

Summary

  • pageLoadTime-> current mean value: 1.03s (±37ms) 🟡 | historical mean value: 1.03s ⬆️ (historical data)
  • domContentLoaded-> current mean value: 720ms (±35ms) 🟢 | historical mean value: 718ms ⬆️ (historical data)
  • firstContentfulPaint-> current mean value: 76ms (±10ms) 🟢 | historical mean value: 78ms ⬇️ (historical data)

📈 Detailed Results

Metric Mean Std Dev Min Max P95 P99
pageLoadTime 1.03s 37ms 1.01s 1.31s 1.06s 1.31s
domContentLoaded 720ms 35ms 699ms 987ms 742ms 987ms
firstPaint 76ms 10ms 60ms 156ms 84ms 156ms
firstContentfulPaint 76ms 10ms 60ms 156ms 84ms 156ms
largestContentfulPaint 0ms 0ms 0ms 0ms 0ms 0ms
Bundle size diffs [🚨 Warning! Bundle size has increased!]
  • background: 58 Bytes (0%)
  • ui: 4 Bytes (0%)
  • common: 27 Bytes (0%)

Copy link
Member

@seaona seaona left a comment

Choose a reason for hiding this comment

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

QA change LGTM

@OGPoyraz OGPoyraz added this pull request to the merge queue Nov 27, 2025
@github-merge-queue github-merge-queue bot removed this pull request from the merge queue due to failed status checks Nov 27, 2025
@OGPoyraz OGPoyraz added this pull request to the merge queue Nov 27, 2025
@github-merge-queue github-merge-queue bot removed this pull request from the merge queue due to failed status checks Nov 27, 2025
@OGPoyraz OGPoyraz added this pull request to the merge queue Nov 28, 2025
Merged via the queue into main with commit c87f69b Nov 28, 2025
176 checks passed
@OGPoyraz OGPoyraz deleted the ogp/6257 branch November 28, 2025 11:51
@github-actions github-actions bot locked and limited conversation to collaborators Nov 28, 2025
@metamaskbot metamaskbot added the release-13.13.0 Issue or pull request that will be included in release 13.13.0 label Nov 28, 2025
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

release-13.13.0 Issue or pull request that will be included in release 13.13.0 size-S team-confirmations Push issues to confirmations team

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants