Gate Vendors More features row on a supported integration and explain the lock - #98845
Gate Vendors More features row on a supported integration and explain the lock#98845MelvinBot wants to merge 1 commit into
Conversation
… the lock Co-authored-by: thelullabyy <thelullabyy@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 82866682..db09b465 100644
--- a/src/languages/de.ts
+++ b/src/languages/de.ts
@@ -6362,8 +6362,8 @@ _Für ausführlichere Anweisungen [besuchen Sie unsere Hilfeseite](${CONST.NETSU
vendors: {
title: 'Lieferanten',
subtitle: 'Ordnen Sie Kartenausgaben den aus Ihrer Buchhaltungssoftware importierten Lieferanten zu.',
- disabledTitle: 'Nicht so schnell...',
- disabledMessage: 'Um diese Funktion zu aktivieren oder zu deaktivieren, müssen Sie Ihre Buchhaltungsimporteinstellungen ändern.',
+ disabledTitle: 'Nicht so schnell …',
+ disabledMessage: 'Um diese Funktion zu aktivieren oder zu deaktivieren, müssen Sie Ihre Buchhaltungs-Importeinstellungen ändern.',
},
},
reports: {
diff --git a/src/languages/es.ts b/src/languages/es.ts
index 0231f79c..e577c8e4 100644
--- a/src/languages/es.ts
+++ b/src/languages/es.ts
@@ -6201,7 +6201,7 @@ ${amount} para ${merchant} - ${date}`,
title: 'Proveedores',
subtitle: 'Asocia los gastos de tarjeta con los proveedores importados de tu software de contabilidad.',
disabledTitle: 'No tan rápido...',
- disabledMessage: 'Para activar o desactivar esta función, deberás cambiar la configuración de importación de contabilidad.',
+ disabledMessage: 'Para habilitar o deshabilitar esta función, tendrás que cambiar tu configuración de importación de contabilidad.',
},
reportFields: {
title: 'Campos de informes',
diff --git a/src/languages/fr.ts b/src/languages/fr.ts
index 89901336..bd35521c 100644
--- a/src/languages/fr.ts
+++ b/src/languages/fr.ts
@@ -6386,7 +6386,7 @@ _Pour des instructions plus détaillées, [visitez notre site d’aide](${CONST.
title: 'Fournisseurs',
subtitle: 'Faites correspondre les dépenses de carte aux fournisseurs importés depuis votre logiciel de comptabilité.',
disabledTitle: 'Pas si vite...',
- disabledMessage: 'Pour activer ou désactiver cette fonctionnalité, vous devrez modifier vos paramètres d’importation comptable.',
+ disabledMessage: "Pour activer ou désactiver cette fonctionnalité, vous devez modifier vos paramètres d'import comptable.",
},
},
reports: {
diff --git a/src/languages/it.ts b/src/languages/it.ts
index fffc1f5c..dcbc2234 100644
--- a/src/languages/it.ts
+++ b/src/languages/it.ts
@@ -6338,7 +6338,7 @@ _Per istruzioni più dettagliate, [visita il nostro sito di assistenza](${CONST.
title: 'Fornitori',
subtitle: 'Abbina le spese della carta ai fornitori importati dal tuo software di contabilità.',
disabledTitle: 'Non così in fretta...',
- disabledMessage: 'Per abilitare o disabilitare questa funzione, dovrai modificare le impostazioni di importazione della contabilità.',
+ disabledMessage: 'Per attivare o disattivare questa funzione, devi modificare le impostazioni di importazione contabile.',
},
},
reports: {
diff --git a/src/languages/ja.ts b/src/languages/ja.ts
index b9dbc5ff..dda58d62 100644
--- a/src/languages/ja.ts
+++ b/src/languages/ja.ts
@@ -6256,7 +6256,7 @@ _詳しい手順については、[ヘルプサイトをご覧ください](${CO
vendors: {
title: 'ベンダー',
subtitle: '会計ソフトからインポートした取引先にカード経費を照合します。',
- disabledTitle: 'ちょっと待ってください...',
+ disabledTitle: 'ちょっとお待ちください…',
disabledMessage: 'この機能を有効または無効にするには、会計インポート設定を変更する必要があります。',
},
},
diff --git a/src/languages/nl.ts b/src/languages/nl.ts
index 5c487d6f..68605921 100644
--- a/src/languages/nl.ts
+++ b/src/languages/nl.ts
@@ -6324,7 +6324,7 @@ _Voor meer gedetailleerde instructies, [bezoek onze help-site](${CONST.NETSUITE_
title: 'Leveranciers',
subtitle: 'Koppel kaartuitgaven aan leveranciers die zijn geïmporteerd uit je boekhoudsoftware.',
disabledTitle: 'Niet zo snel...',
- disabledMessage: 'Om deze functie in of uit te schakelen, moet je je boekhoudimportinstellingen wijzigen.',
+ disabledMessage: 'Om deze functie in of uit te schakelen, moet je je instellingen voor boekhoudimport wijzigen.',
},
},
reports: {
diff --git a/src/languages/pl.ts b/src/languages/pl.ts
index 0a093db9..84bb539a 100644
--- a/src/languages/pl.ts
+++ b/src/languages/pl.ts
@@ -6302,8 +6302,8 @@ _Aby uzyskać bardziej szczegółowe instrukcje, [odwiedź naszą stronę pomocy
vendors: {
title: 'Dostawcy',
subtitle: 'Dopasuj wydatki z karty do kontrahentów zaimportowanych z twojego oprogramowania księgowego.',
- disabledTitle: 'Nie tak szybko...',
- disabledMessage: 'Aby włączyć lub wyłączyć tę funkcję, musisz zmienić ustawienia importu księgowego.',
+ disabledTitle: 'Nie tak prędko...',
+ disabledMessage: 'Aby włączyć lub wyłączyć tę funkcję, musisz zmienić swoje ustawienia importu księgowego.',
},
},
reports: {
diff --git a/src/languages/pt-BR.ts b/src/languages/pt-BR.ts
index 9a290e79..c1774396 100644
--- a/src/languages/pt-BR.ts
+++ b/src/languages/pt-BR.ts
@@ -6324,7 +6324,7 @@ _Para instruções mais detalhadas, [visite nossa central de ajuda](${CONST.NETS
title: 'Fornecedores',
subtitle: 'Combine as despesas do cartão com fornecedores importados do seu software de contabilidade.',
disabledTitle: 'Calma lá...',
- disabledMessage: 'Para ativar ou desativar este recurso, você precisará alterar suas configurações de importação contábil.',
+ disabledMessage: 'Para ativar ou desativar esse recurso, você precisa alterar suas configurações de importação contábil.',
},
},
reports: {
diff --git a/src/languages/zh-hans.ts b/src/languages/zh-hans.ts
index c5b3dcf1..93ed594f 100644
--- a/src/languages/zh-hans.ts
+++ b/src/languages/zh-hans.ts
@@ -6108,8 +6108,8 @@ _如需更详细的说明,请[访问我们的帮助网站](${CONST.NETSUITE_IM
vendors: {
title: '供应商',
subtitle: '将卡片报销与从您的会计软件导入的供应商进行匹配。',
- disabledTitle: '别急...',
- disabledMessage: '要启用或禁用此功能,您需要更改会计导入设置。',
+ disabledTitle: '别那么快……',
+ disabledMessage: '若要启用或禁用此功能,您需要更改会计导入设置。',
},
},
reports: {
Note You can apply these changes to your branch by copying the patch to your clipboard, then running |
|
I looked into the failing checks and there's no code fix needed — every real check is now passing. The only failing check is
That check only passes once an independent Expensify employee reviews and approves the PR, so it can't be resolved by pushing a commit. It'll go green on its own once the PR gets an independent approval. Full check status
No further action needed from me here — this one just needs a reviewer. |
Explanation of Change
The Vendors row in Settings → Workspace → More features was rendered for every user with the
vendorMatchingbeta enabled, regardless of accounting setup, and its locked switch gave no explanation when tapped. Per the updated spec and Jenna's confirmation, the row should follow a three-state matrix:isActiveThis PR:
getConnectedIntegrationwith an explicit allowlist.hasVendorFeaturestays as the narrowerisActivepredicate (does the export config actually scope vendors) so supported-but-unconfigured workspaces still see a locked-OFF discovery row, while NetSuite / QuickBooks Desktop / no-connection workspaces are hidden.withReadOnlyFallback+showConfirmModalpattern (the same one Categories / Tags / Taxes use) into the Vendors row'sdisabledAction. Writable admins now get an accounting-settings explanation modal; read-only users still get the standard read-only modal. The switch stays purely derived frompolicy.connections— noEnablePolicyVendorscommand is introduced (that remains a future PR).disabledTitle/disabledMessage) confirmed by @heyjennahay toen.ts, with translations mirrored to every other locale.Added table-driven UI tests covering the hidden states (no connection, NetSuite), the locked-ON supported state (with the explanation modal), and the supported locked-OFF discovery state.
Fixed Issues
$ #98591
PROPOSAL: #98591 (comment)
Tests
vendorMatchingbeta.Offline tests
QA Steps
// TODO: These must be filled out, or the issue title must include "[No QA]."
PR Author Checklist
### Fixed Issuessection aboveTestssectionOffline stepssectionQA stepssectionAvatar, 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.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