Stop calling AddWorkEmail from workspace card flows#91885
Closed
blimpich wants to merge 6 commits into
Closed
Conversation
Codecov Report✅ Changes either increased or maintained existing code coverage, great job!
|
Contributor
🦜 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 a6cf5c09960..a8302095d75 100644
--- a/src/languages/de.ts
+++ b/src/languages/de.ts
@@ -5454,6 +5454,7 @@ _Für ausführlichere Anweisungen [besuchen Sie unsere Hilfeseite](${CONST.NETSU
},
deletedCard: 'Gelöschte Karte',
assignNewCards: {title: 'Neue Karten zuweisen', description: 'Holen Sie die neuesten Karten zum Zuweisen von Ihrer Bank'},
+ openContactMethods: 'Kontaktmethoden öffnen',
},
expensifyCard: {
issueAndManageCards: 'Geben Sie Expensify Karten aus und verwalten Sie sie',
diff --git a/src/languages/es.ts b/src/languages/es.ts
index 771b34f7457..419429b6e5a 100644
--- a/src/languages/es.ts
+++ b/src/languages/es.ts
@@ -5131,7 +5131,7 @@ ${amount} para ${merchant} - ${date}`,
fromOtherWorkspaces: 'De otros espacios de trabajo',
addWorkEmail: 'Añade tu correo electrónico de trabajo',
addWorkEmailDescription: 'Por favor, añade tu correo de trabajo para poder usar los feeds existentes de otros espacios de trabajo.',
- openContactMethods: 'Abrir Métodos de contacto',
+ openContactMethods: 'Abrir métodos de contacto',
error: {
workspaceFeedsCouldNotBeLoadedTitle: 'Error al cargar las fuentes de tarjetas del espacio de trabajo',
workspaceFeedsCouldNotBeLoadedMessage:
diff --git a/src/languages/fr.ts b/src/languages/fr.ts
index eb8b2d3b96f..8876871b0f7 100644
--- a/src/languages/fr.ts
+++ b/src/languages/fr.ts
@@ -5465,6 +5465,7 @@ _Pour des instructions plus détaillées, [visitez notre site d’aide](${CONST.
},
deletedCard: 'Carte supprimée',
assignNewCards: {title: 'Assigner de nouvelles cartes', description: 'Obtenez les dernières cartes à assigner depuis votre banque'},
+ openContactMethods: 'Ouvrir les moyens de contact',
},
expensifyCard: {
issueAndManageCards: 'Émettre et gérer vos Cartes Expensify',
diff --git a/src/languages/it.ts b/src/languages/it.ts
index 8b55789d977..a9edf94fb59 100644
--- a/src/languages/it.ts
+++ b/src/languages/it.ts
@@ -5435,6 +5435,7 @@ _Per istruzioni più dettagliate, [visita il nostro sito di assistenza](${CONST.
},
deletedCard: 'Carta eliminata',
assignNewCards: {title: 'Assegna nuove carte', description: 'Ottieni le ultime carte da assegnare dalla tua banca'},
+ openContactMethods: 'Apri metodi di contatto',
},
expensifyCard: {
issueAndManageCards: 'Emetti e gestisci le tue Carte Expensify',
diff --git a/src/languages/ja.ts b/src/languages/ja.ts
index 7dadd52e680..7502dce01c0 100644
--- a/src/languages/ja.ts
+++ b/src/languages/ja.ts
@@ -5385,6 +5385,7 @@ _詳しい手順については、[ヘルプサイトをご覧ください](${CO
},
deletedCard: '削除されたカード',
assignNewCards: {title: '新しいカードを割り当てる', description: '銀行から割り当て可能な最新のカードを取得します'},
+ openContactMethods: '連絡方法を開く',
},
expensifyCard: {
issueAndManageCards: 'Expensify カードを発行して管理する',
diff --git a/src/languages/nl.ts b/src/languages/nl.ts
index 9a7bb8d0ffb..f14dda4eb9c 100644
--- a/src/languages/nl.ts
+++ b/src/languages/nl.ts
@@ -5426,6 +5426,7 @@ _Voor meer gedetailleerde instructies, [bezoek onze help-site](${CONST.NETSUITE_
},
deletedCard: 'Verwijderde kaart',
assignNewCards: {title: 'Nieuwe kaarten toewijzen', description: 'Haal de nieuwste kaarten op om toe te wijzen vanuit je bank'},
+ openContactMethods: 'Contactmethoden openen',
},
expensifyCard: {
issueAndManageCards: 'Geef Expensify Kaarten uit en beheer ze',
diff --git a/src/languages/pl.ts b/src/languages/pl.ts
index f4011e201ee..d3cdb810405 100644
--- a/src/languages/pl.ts
+++ b/src/languages/pl.ts
@@ -5415,6 +5415,7 @@ _Aby uzyskać bardziej szczegółowe instrukcje, [odwiedź naszą stronę pomocy
},
deletedCard: 'Usunięta karta',
assignNewCards: {title: 'Przydziel nowe karty', description: 'Pobierz z banku najnowsze karty do przypisania'},
+ openContactMethods: 'Otwórz metody kontaktu',
},
expensifyCard: {
issueAndManageCards: 'Wydawaj i zarządzaj Kartami Expensify',
diff --git a/src/languages/pt-BR.ts b/src/languages/pt-BR.ts
index da031573508..01146c41ba4 100644
--- a/src/languages/pt-BR.ts
+++ b/src/languages/pt-BR.ts
@@ -5418,6 +5418,7 @@ _Para instruções mais detalhadas, [visite nossa central de ajuda](${CONST.NETS
},
deletedCard: 'Cartão excluído',
assignNewCards: {title: 'Atribuir novos cartões', description: 'Obtenha do seu banco os cartões mais recentes para atribuir'},
+ openContactMethods: 'Abrir métodos de contato',
},
expensifyCard: {
issueAndManageCards: 'Emita e gerencie seus Cartões Expensify',
diff --git a/src/languages/zh-hans.ts b/src/languages/zh-hans.ts
index ea9c4e85483..828992efca6 100644
--- a/src/languages/zh-hans.ts
+++ b/src/languages/zh-hans.ts
@@ -5290,6 +5290,7 @@ _如需更详细的说明,请[访问我们的帮助网站](${CONST.NETSUITE_IM
},
deletedCard: '已删除的卡片',
assignNewCards: {title: '分配新卡', description: '从您的银行获取可分配的最新银行卡'},
+ openContactMethods: '打开联系方式',
},
expensifyCard: {
issueAndManageCards: '发放并管理您的 Expensify 卡',
Note You can apply these changes to your branch by copying the patch to your clipboard, then running |
The list page gates "add new" on primary-login validation. Going straight to /new bypasses that and breaks for users whose primary isn't validated.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Explanation of Change
If you're an admin of two workspaces and want to share a card feed from one to the other, the app needs you to have a work email on file. Until now, that flow ran a backend command that was only meant for onboarding — and that command had a security bug where it would swap your primary email to whatever you typed in, no magic code required.
The backend fix for that bug (Auth PR #21732) is already in production. But it left two screens in the App still calling the broken command, which now fail silently when you hit submit. That's been broken in production for about a week.
This PR replaces those two screens with a small explainer page that tells you to add a work email in your Contact Methods, then sends you to your Contact Methods list with a single button click. From there you tap "New contact method" and go through the standard magic-code flow (which also handles the case where your primary email isn't yet validated). After you've added and verified the email, you come back to the workspace and the feed links normally.
The onboarding side of the same cleanup is in App PR #91142.
Slack thread with the original report and discussion: https://expensify.slack.com/archives/C03TQ48KC/p1779124141564419
Fixed Issues
$ https://github.com/Expensify/Expensify/issues/638726
PROPOSAL:
Tests
Offline tests
N/A — navigation change with no new network behavior.
QA Steps
Run all steps on https://staging.new.expensify.com against staging.
Public-domain primary with no work-email secondary (most common case)
Public-domain primary with a validated work-email secondary
Unvalidated private-domain primary with no secondaries (existing verify-primary flow)
WorkspaceVerifyWorkAccountPage(existing verify-primary flow) and that entering the magic code sent to the primary links the feed.Validated private-domain primary (no redirect needed)
Repeat all four scenarios against Expensify Card ("Add card feed" from the Expensify Card feed selector — same expected behavior on each).
Regression — onboarding still works
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
– written by Claude on Ben's behalf
/** comment above it */thisproperly so there are no scoping issues (i.e. foronClick={this.submit}the methodthis.submitshould be bound tothisin the constructor)thisare necessary to be bound (i.e. avoidthis.submit = this.submit.bind(this);ifthis.submitis never passed to a component event handler likeonClick)Screenshots/Videosundefined