Conversation
…onboarding work email screen Restores the PUBLIC_DOMAINS_SET check that was removed by PR #79909, and adds a new validation to prevent users from entering the same email they signed up with. Co-authored-by: Benjamin Limpich <blimpich@users.noreply.github.com>
🦜 Polyglot Parrot! 🦜Squawk! Looks like you added some shiny new English strings. Allow me to parrot them back to you in other tongues: View the translation diffdiff --git a/src/languages/de.ts b/src/languages/de.ts
index 1dd524fc..2fbe0bff 100644
--- a/src/languages/de.ts
+++
8000
b/src/languages/de.ts
@@ -2758,7 +2758,7 @@ ${amount} für ${merchant} – ${date}`,
},
workEmailValidationError: {
publicEmail: 'Bitte gib eine gültige geschäftliche E-Mail-Adresse von einer privaten Domain ein, z. B. mitch@company.com',
- sameAsSignupEmail: 'Bitte gib eine andere E-Mail-Adresse ein als die, mit der du dich registriert hast',
+ sameAsSignupEmail: 'Bitte geben Sie eine andere E-Mail-Adresse ein als die, mit der Sie sich registriert haben',
offline: 'Wir konnten deine geschäftliche E-Mail nicht hinzufügen, da du offenbar offline bist',
},
mergeBlockScreen: {
diff --git a/src/languages/fr.ts b/src/languages/fr.ts
index a94aeec0..6f046d07 100644
--- a/src/languages/fr.ts
+++ b/src/languages/fr.ts
@@ -2763,7 +2763,7 @@ ${amount} pour ${merchant} - ${date}`,
},
workEmailValidationError: {
publicEmail: 'Veuillez saisir une adresse e-mail professionnelle valide provenant d’un domaine privé, par ex. mitch@company.com',
- sameAsSignupEmail: 'Veuillez saisir une adresse e-mail diff\u00e9rente de celle avec laquelle vous vous \u00eates inscrit',
+ sameAsSignupEmail: 'Veuillez saisir une adresse e-mail différente de celle avec laquelle vous vous êtes inscrit',
offline: 'Nous n’avons pas pu ajouter votre adresse e-mail professionnelle, car vous semblez être hors ligne',
},
mergeBlockScreen: {
diff --git a/src/languages/it.ts b/src/languages/it.ts
index b6e931a1..404d44d6 100644
--- a/src/languages/it.ts
+++ b/src/languages/it.ts
@@ -2750,7 +2750,7 @@ ${amount} per ${merchant} - ${date}`,
},
workEmailValidationError: {
publicEmail: 'Inserisci un’email di lavoro valida con dominio privato, ad es. mitch@company.com',
- sameAsSignupEmail: 'Inserisci un indirizzo email diverso da quello con cui ti sei registrato',
+ sameAsSignupEmail: 'Inserisci un’email diversa da quella con cui ti sei registrato',
offline: 'Non è stato possibile aggiungere la tua email di lavoro perché sembri offline',
},
mergeBlockScreen: {
diff --git a/src/languages/ja.ts b/src/languages/ja.ts
index cc8af513..06ac961f 100644
--- a/src/languages/ja.ts
+++ b/src/languages/ja.ts
@@ -2731,7 +2731,7 @@ ${date} の ${merchant} への ${amount}`,
},
workEmailValidationError: {
publicEmail: 'プライベートドメインの有効な勤務先メールアドレスを入力してください(例:mitch@company.com)',
- sameAsSignupEmail: 'サインアップ時に使用したメールアドレスとは異なるメールアドレスを入力してください',
+ sameAsSignupEmail: 'サインアップ時に使用したものとは別のメールアドレスを入力してください',
offline: 'オフラインのため、勤務先のメールアドレスを追加できませんでした',
},
mergeBlockScreen: {
diff --git a/src/languages/nl.ts b/src/languages/nl.ts
index a01645d1..418189b0 100644
--- a/src/languages/nl.ts
+++ b/src/languages/nl.ts
@@ -2750,7 +2750,7 @@ ${amount} voor ${merchant} - ${date}`,
},
workEmailValidationError: {
publicEmail: 'Voer een geldig zakelijk e-mailadres in van een privédomein, bijv. mitch@company.com',
- sameAsSignupEmail: 'Voer een ander e-mailadres in dan het adres waarmee je je hebt aangemeld',
+ sameAsSignupEmail: 'Voer een ander e-mailadres in dan het e-mailadres waarmee je je hebt aangemeld',
offline: 'We konden je werk-e-mailadres niet toevoegen omdat je offline lijkt te zijn',
},
mergeBlockScreen: {
diff --git a/src/languages/pl.ts b/src/languages/pl.ts
index f59eb38e..8d52fee1 100644
--- a/src/languages/pl.ts
+++ b/src/languages/pl.ts
@@ -2742,7 +2742,7 @@ ${amount} dla ${merchant} - ${date}`,
},
workEmailValidationError: {
publicEmail: 'Wpisz poprawny służbowy adres e‑mail z prywatnej domeny, np. mitch@company.com',
- sameAsSignupEmail: 'Podaj inny adres e‑mail niż ten, którego użyłeś do rejestracji',
+ sameAsSignupEmail: 'Podaj inny adres e-mail niż ten, którego użyłeś przy rejestracji',
offline: 'Nie mogliśmy dodać Twojego służbowego adresu e‑mail, ponieważ wydajesz się być offline',
},
mergeBlockScreen: {
diff --git a/src/languages/pt-BR.ts b/src/languages/pt-BR.ts
index 6e420cd6..d160f651 100644
--- a/src/languages/pt-BR.ts
+++ b/src/languages/pt-BR.ts
@@ -2742,7 +2742,7 @@ ${amount} para ${merchant} - ${date}`,
},
workEmailValidationError: {
publicEmail: 'Insira um e-mail de trabalho válido de um domínio privado, por exemplo: mitch@company.com',
- sameAsSignupEmail: 'Insira um e-mail diferente daquele com o qual você se cadastrou',
+ sameAsSignupEmail: 'Insira um e-mail diferente daquele com que você se cadastrou',
offline: 'Não foi possível adicionar seu e-mail profissional, pois você parece estar offline',
},
mergeBlockScreen: {
diff --git a/src/languages/zh-hans.ts b/src/languages/zh-hans.ts
index dfe75816..a4f20dcb 100644
--- a/src/languages/zh-hans.ts
+++ b/src/languages/zh-hans.ts
@@ -2690,7 +2690,7 @@ ${amount},商户:${merchant} - 日期:${date}`,
},
workEmailValidationError: {
publicEmail: '请输入来自私有域的有效工作邮箱,例如:mitch@company.com',
- sameAsSignupEmail: '请输入与注册时不同的邮箱地址',
+ sameAsSignupEmail: '请输入与注册时不同的邮箱',
offline: '由于您似乎处于离线状态,我们无法添加您的工作邮箱',
},
mergeBlockScreen: {
Note You can apply these changes to your branch by copying the patch to your clipboard, then running |
Codecov Report❌ Looks like you've decreased code coverage for some files. Please write tests to increase, or at least maintain, the existing level of code coverage. See our documentation here for how to interpret this table.
|
|
Asked for spanish translation here: https://expensify.slack.com/archives/C01GTK53T8Q/p1772828107884809 |
Corrected the spelling of 'utilizaste' in the work email validation error message.
|
While we're waiting to validate the spanish translations, might as well open this up to review |
|
@aimane-chnaif Please copy/paste the Reviewer Checklist from here into a new comment on this PR and complete it. If you have the K2 extension, you can simply click: [this button] |
There was a problem hiding this comment.
Good for product
Reviewer Checklist
Screenshots/VideosAndroid: HybridAppAndroid: mWeb ChromeiOS: HybridAppiOS: mWeb SafariMacOS: Chrome / SafariScreen.Recording.2026-03-11.at.8.37.27.am.mov |
|
@MelvinBot pull main |
…ainValidation Co-authored-by: Aimane Chnaif <aimane-chnaif@users.noreply.github.com>
|
Merged |
|
@dukenv0307 @blimpich One of you needs to copy/paste the Reviewer Checklist from here into a new comment on this PR and complete it. If you have the K2 extension, you can simply click: [this button] |
|
Codex Review: Didn't find any major issues. Can't wait for the next one! ℹ️ About Codex in GitHubCodex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback". |
There was a problem hiding this comment.
Looks good other than above comment and Spanish confirmation
|
|
Co-authored-by: Aimane Chnaif <aimane-chnaif@users.noreply.github.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
The failing check is unrelated to this PR's changes. Failing test:
Why it's unrelated: This PR modifies Evidence: Multiple other unrelated PRs are also experiencing flaky test failures in the same CI run window (different tests failing on different branches), confirming this is a pre-existing flaky test issue, not caused by this PR's changes. |
|
@aimane-chnaif Please copy/paste the Reviewer Checklist from here into a new comment on this PR and complete it. If you have the K2 extension, you can simply click: [this button] |
|
🚧 @blimpich has triggered a test Expensify/App build. You can view the workflow run here. |
|
🧪🧪 Use the links below to test this adhoc build on Android, iOS, and Web. Happy testing! 🧪🧪
|
|
🚀 Deployed to staging by https://github.com/blimpich in version: 9.3.36-0 🚀
|
|
🚀 Deployed to production by https://github.com/luacmartins in version: 9.3.36-10 🚀
|
Explanation of Change
PR #79909 removed the
PUBLIC_DOMAINS_SETcheck from the onboarding "What's your work email?" screen to allow public domain emails. This caused three downstream problems: (1) backend errors on public domain emails with no UI feedback, (2) nonsensical workspace suggestions for public domains, and (3) users could enter the same email they signed up with.This PR restores the original public domain validation in
BaseOnboardingWorkEmail.tsxby re-adding thePUBLIC_DOMAINS_SETimport and check in thevalidate()function. It also adds a new check that prevents users from submitting the same email they signed up with, using session data from Onyx.Fixed Issues
$ #84445
PROPOSAL: #84445 (comment)
Tests
test@gmail.com)test@company.com)Offline tests
QA Steps
same as tests
PR Author Checklist
### Fixed Issuessection aboveTestssectionOffline stepssectionQA stepssectiontoggleReportand notonIconClick)src/languages/*files and using the translation methodSTYLE.md) were followedAvatar, I verified the components usingAvatarare working as expected)StyleUtils.getBackgroundAndBorderStyle(theme.componentBG))npm run compress-svg)Avataris modified, I verified thatAvataris working as expected in all cases)Designlabel and/or tagged@Expensify/designso the design team can review the changes.ScrollViewcomponent to make it scrollable when more elements are added to the page.mainbranch was merged into this PR after a review, I tested again and verified the outcome was still expected according to theTeststeps.Screenshots/Videos
Android: Native
Android: mWeb Chrome
iOS: Native
iOS: mWeb Safari
MacOS: Chrome / Safari