Retry Travel Invoicing cards provisioning#88104
Conversation
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
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.
|
🦜 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 0393390e..9afbc604 100644
--- a/src/languages/de.ts
+++ b/src/languages/de.ts
@@ -5520,7 +5520,7 @@ _Für ausführlichere Anweisungen [besuchen Sie unsere Hilfeseite](${CONST.NETSU
reduceLimitWarning:
'Wenn Sie das Limit reduzieren, können Mitglieder, die diesen Betrag bereits überschritten haben, bis zum nächsten Monat keine neuen Reisebuchungen vornehmen.',
provisioningError:
- 'Wir konnten einige Mitglieder Ihres Arbeitsbereichs nicht für die zentrale Rechnungsstellung einrichten. Bitte versuchen Sie es später erneut oder wenden Sie sich für Unterstützung an Concierge.',
+ 'Einige Mitglieder Ihres Workspaces konnten für die zentrale Rechnungsstellung nicht bereitgestellt werden. Bitte versuchen Sie es später erneut oder wenden Sie sich zur Unterstützung an Concierge.',
},
},
disableModal: {
diff --git a/src/languages/fr.ts b/src/languages/fr.ts
index 3a61ba9e..7fbf0eaa 100644
--- a/src/languages/fr.ts
+++ b/src/languages/fr.ts
@@ -5538,7 +5538,7 @@ _Pour des instructions plus détaillées, [visitez notre site d’aide](${CONST.
reduceLimitWarning:
'Si vous réduisez la limite, les membres ayant déjà dépensé plus que ce montant ne pourront pas effectuer de nouvelles réservations de voyage avant le mois prochain.',
provisioningError:
- 'Nous n’avons pas pu configurer certains membres de votre espace de travail pour la facturation centralisée. Veuillez réessayer plus tard ou contacter Concierge pour obtenir de l’aide.',
+ 'Nous n’avons pas pu approvisionner certains membres de votre espace de travail pour la facturation centralisée. Veuillez réessayer plus tard ou contacter Concierge pour obtenir de l’aide.',
},
},
disableModal: {
diff --git a/src/languages/it.ts b/src/languages/it.ts
index c8bd03d1..b6a0ec77 100644
--- a/src/languages/it.ts
+++ b/src/languages/it.ts
@@ -5509,7 +5509,7 @@ _Per istruzioni più dettagliate, [visita il nostro sito di assistenza](${CONST.
reduceLimitWarning:
'Se riduci il limite, i membri che hanno già speso più di questo importo non potranno effettuare nuove prenotazioni di viaggio fino al mese prossimo.',
provisioningError:
- 'Non siamo riusciti a configurare alcuni membri del tuo spazio di lavoro per la fatturazione centralizzata. Riprova più tardi o contatta Concierge per assistenza.',
+ 'Non siamo riusciti ad abilitare alcuni membri del tuo spazio di lavoro per la fatturazione centralizzata. Riprova più tardi oppure contatta Concierge per assistenza.',
},
},
disableModal: {
diff --git a/src/languages/ja.ts b/src/languages/ja.ts
index bd14979e..121f2c0e 100644
--- a/src/languages/ja.ts
+++ b/src/languages/ja.ts
@@ -5446,7 +5446,7 @@ _詳しい手順については、[ヘルプサイトをご覧ください](${CO
reduceLimitTitle: '出張支出上限を引き下げますか?',
reduceLimitWarning: 'この上限を引き下げると、すでにこの金額を超えて支出しているメンバーは、翌月まで新しい出張予約ができなくなります。',
provisioningError:
- 'ワークスペース内の一部メンバーを集中請求用にプロビジョニングできませんでした。時間をおいてもう一度お試しいただくか、サポートが必要な場合は Concierge までお問い合わせください。',
+ 'ワークスペース内の一部メンバーを中央請求向けにプロビジョニングできませんでした。しばらくしてからもう一度お試しいただくか、サポートが必要な場合は Concierge までお問い合わせください。',
},
},
disableModal: {
diff --git a/src/languages/nl.ts b/src/languages/nl.ts
index 98b0b1b6..8a964fd5 100644
--- a/src/languages/nl.ts
+++ b/src/languages/nl.ts
@@ -5495,7 +5495,7 @@ _Voor meer gedetailleerde instructies, [bezoek onze help-site](${CONST.NETSUITE_
reduceLimitTitle: 'Reisbestedingslimiet verlagen?',
reduceLimitWarning: 'Als u het limiet verlaagt, kunnen leden die dit bedrag al hebben overschreden geen nieuwe reisboekingen maken tot volgende maand.',
provisioningError:
- 'We konden sommige leden van je workspace niet instellen voor centrale facturatie. Probeer het later opnieuw of neem contact op met Concierge voor hulp.',
+ 'We konden sommige leden van je werkruimte niet instellen voor centrale facturatie. Probeer het later opnieuw of neem contact op met Concierge voor hulp.',
},
},
disableModal: {
diff --git a/src/languages/pt-BR.ts b/src/languages/pt-BR.ts
index ba774db2..b85c891f 100644
--- a/src/languages/pt-BR.ts
+++ b/src/languages/pt-BR.ts
@@ -5490,7 +5490,7 @@ _Para instruções mais detalhadas, [visite nossa central de ajuda](${CONST.NETS
reduceLimitTitle: 'Reduzir o limite de gastos com viagens?',
reduceLimitWarning: 'Se você reduzir o limite, os membros que já gastaram mais do que esse valor não poderão fazer novas reservas de viagem até o próximo mês.',
provisioningError:
- 'Não conseguimos provisionar alguns membros do seu workspace para faturamento centralizado. Tente novamente mais tarde ou entre em contato com o Concierge para obter ajuda.',
+ 'Não foi possível provisionar alguns membros do seu workspace para faturamento centralizado. Tente novamente mais tarde ou entre em contato com o Concierge para obter ajuda.',
},
},
disableModal: {
diff --git a/src/languages/zh-hans.ts b/src/languages/zh-hans.ts
index 8201b0fc..a310c78b 100644
--- a/src/languages/zh-hans.ts
+++ b/src/languages/zh-hans.ts
@@ -5358,7 +5358,7 @@ _如需更详细的说明,请[访问我们的帮助网站](${CONST.NETSUITE_IM
monthlySpendLimitDescription: '每位成员每月可用于出差的最高金额。',
reduceLimitTitle: '降低出差支出限额?',
reduceLimitWarning: '如果您降低限额,已超出该金额的成员将无法进行新的出差预订,直至下个月。',
- provisioningError: '我们无法为您工作区中的部分成员开通集中开票功能。请稍后重试或联系 Concierge 获得协助。',
+ provisioningError: '我们无法为您工作区中的部分成员开通集中开票功能。请稍后重试或联系 Concierge 获取帮助。',
},
},
disableModal: {title: '关闭差旅开票?', body: '即将到来的酒店和汽车租赁预订可能需要使用不同的付款方式重新预订,以避免被取消。', confirm: '关闭'},
Note You can apply these changes to your branch by copying the patch to your clipboard, then running |
| reduceLimitTitle: '¿Reducir el límite de gasto en viajes?', | ||
| reduceLimitWarning: 'Si reduces el límite, los miembros que ya hayan gastado más de este monto no podrán hacer nuevas reservas de viaje hasta el próximo mes.', | ||
| provisioningError: | ||
| 'No pudimos aprovisionar a algunos de los miembros de tu espacio de trabajo para la facturación centralizada. Por favor, inténtalo de nuevo más tarde o contacta con Concierge para obtener ayuda.', |
There was a problem hiding this comment.
I didn't request ES translation validation because the terms used here are very similar to other translations.
|
@shawnborton @cretadn22 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] |
|
@shawnborton @ikevin127 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] |
|
Can we use our small button size (28px tall) instead of regular? Otherwise looks good 👍 |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: fc092a0efd
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
|
Looks great! |
Reviewer Checklist
Screenshots/VideosScreen.Recording.2026-04-16.at.15.34.56.movSimulator.Screen.Recording.-.iPhone.17.Pro.Max.-.2026-04-16.at.15.49.40.mov |
ikevin127
left a comment
There was a problem hiding this comment.
🟢 LGTM - Only 1 NAB comment
The implementation follows existing patterns effectively. The feature is well-architected and translation coverage is complete ✅
Co-authored-by: Kevin Brian Bader <56457735+ikevin127@users.noreply.github.com>
|
🚧 @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! 🧪🧪
|
|
✋ This PR was not deployed to staging yet because QA is ongoing. It will be automatically deployed to staging after the next production release. |


Explanation of Change
Provisioning may fail for various reasons, this PR adds a retry button so we clear the errors and try to provision the cards again.
Fixed Issues
$ #87420
PROPOSAL:
Tests
Screen.Recording.2026-04-16.at.16.40.50.mov
Offline tests
QA Steps
I am making this NO QA because there is no clear way of making the card provisioning fail.
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