Repository navigation
Conversation
…grations Rebuild the accounting selection as a 3-column (2 on narrow) tile grid per the design mocks, and add the Intuit Enterprise Suite, Certinia and Rillet options that were missing from this screen. Each tile keeps a square selection control for the mock's checkbox look but is announced as a radio, since only one option can be picked. Other now uses the Pencil illustration and still reveals its free-text input. Also map the new keys in ONBOARDING_ACCOUNTING_MAPPING so the onboarding task renders 'Connect to Certinia' rather than the raw connection name, and drop the dead onboarding.accounting.none string. Co-authored-by: mkhutornyi <mkhutornyi@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 955d61a1..0fde0ec7 100644
--- a/src/languages/de.ts
+++ b/src/languages/de.ts
@@ -3344,10 +3344,7 @@ ${amount} für ${merchant} – ${date}`,
[CONST.ONBOARDING_COMPANY_SIZE.MEDIUM]: '101–1.000 Mitarbeitende',
[CONST.ONBOARDING_COMPANY_SIZE.LARGE]: 'Mehr als 1.000 Mitarbeitende',
},
- accounting: {
- title: 'Verwendest du eine Buchhaltungssoftware?',
- otherAccountingSoftware: 'Name der Software',
- },
+ accounting: {title: 'Verwendest du eine Buchhaltungssoftware?', otherAccountingSoftware: 'Name der Software'},
interestedFeatures: {
title: 'An welchen Funktionen bist du interessiert?',
featuresAlreadyEnabled: 'Hier sind unsere beliebtesten Funktionen:',
diff --git a/src/languages/el.ts b/src/languages/el.ts
index 422a52f3..df5aafe3 100644
--- a/src/languages/el.ts
+++ b/src/languages/el.ts
@@ -3397,10 +3397,7 @@ ${amount} για ${merchant} - ${date}`,
[CONST.ONBOARDING_COMPANY_SIZE.MEDIUM]: '101-1.000 εργαζόμενοι',
[CONST.ONBOARDING_COMPANY_SIZE.LARGE]: 'Περισσότεροι από 1.000 εργαζόμενοι',
},
- accounting: {
- title: 'Χρησιμοποιείτε κάποιο λογιστικό λογισμικό;',
- otherAccountingSoftware: 'Όνομα λογισμικού',
- },
+ accounting: {title: 'Χρησιμοποιείτε κάποιο λογιστικό λογισμικό;', otherAccountingSoftware: 'Όνομα λογισμικού'},
interestedFeatures: {
title: 'Σε ποιες δυνατότητες ενδιαφέρεστε;',
featuresAlreadyEnabled: 'Αυτά είναι τα πιο δημοφιλή χαρακτηριστικά μας:',
diff --git a/src/languages/es.ts b/src/languages/es.ts
index 530be84f..59713f59 100644
--- a/src/languages/es.ts
+++ b/src/languages/es.ts
@@ -3252,10 +3252,7 @@ ${amount} para ${merchant} - ${date}`,
[CONST.ONBOARDING_COMPANY_SIZE.MEDIUM]: '101-1,000 empleados',
[CONST.ONBOARDING_COMPANY_SIZE.LARGE]: 'Más de 1,000 empleados',
},
- accounting: {
- title: '¿Utilizas algún software de contabilidad?',
- otherAccountingSoftware: 'Nombre del software',
- },
+ accounting: {title: '¿Utilizas algún software de contabilidad?', otherAccountingSoftware: 'Nombre del software'},
interestedFeatures: {
title: '¿Qué funciones te interesan?',
featuresAlreadyEnabled: 'Aquí están nuestras funciones más populares:',
diff --git a/src/languages/fr.ts b/src/languages/fr.ts
index 70bf85ce..503326ed 100644
--- a/src/languages/fr.ts
+++ b/src/languages/fr.ts
@@ -3352,10 +3352,7 @@ ${amount} pour ${merchant} - ${date}`,
[CONST.ONBOARDING_COMPANY_SIZE.MEDIUM]: '101 à 1 000 employés',
[CONST.ONBOARDING_COMPANY_SIZE.LARGE]: 'Plus de 1 000 employés',
},
- accounting: {
- title: 'Utilisez-vous un logiciel de comptabilité ?',
- otherAccountingSoftware: 'Nom du logiciel',
- },
+ accounting: {title: 'Utilisez-vous un logiciel de comptabilité ?', otherAccountingSoftware: 'Nom du logiciel'},
interestedFeatures: {
title: 'Quelles fonctionnalités vous intéressent ?',
featuresAlreadyEnabled: 'Voici nos fonctionnalités les plus populaires :',
diff --git a/src/languages/it.ts b/src/languages/it.ts
index 3ddfad9c..a2ef3073 100644
--- a/src/languages/it.ts
+++ b/src/languages/it.ts
@@ -3332,10 +3332,7 @@ ${amount} per ${merchant} - ${date}`,
[CONST.ONBOARDING_COMPANY_SIZE.MEDIUM]: 'Da 101 a 1.000 dipendenti',
[CONST.ONBOARDING_COMPANY_SIZE.LARGE]: 'Più di 1.000 dipendenti',
},
- accounting: {
- title: 'Usi un software di contabilità?',
- otherAccountingSoftware: 'Nome del software',
- },
+ accounting: {title: 'Usi un software di contabilità?', otherAccountingSoftware: 'Nome del software'},
interestedFeatures: {
title: 'A quali funzionalità sei interessato?',
featuresAlreadyEnabled: 'Ecco le nostre funzionalità più popolari:',
diff --git a/src/languages/ja.ts b/src/languages/ja.ts
index 9afe4766..e1bf39c0 100644
--- a/src/languages/ja.ts
+++ b/src/languages/ja.ts
@@ -3304,10 +3304,7 @@ ${date} の ${merchant} への ${amount}`,
[CONST.ONBOARDING_COMPANY_SIZE.MEDIUM]: '101~1,000人の従業員',
[CONST.ONBOARDING_COMPANY_SIZE.LARGE]: '1,000人超の従業員',
},
- accounting: {
- title: '会計ソフトを利用していますか?',
- otherAccountingSoftware: 'ソフトウェア名',
- },
+ accounting: {title: '会計ソフトを利用していますか?', otherAccountingSoftware: 'ソフトウェア名'},
interestedFeatures: {
title: 'どの機能にご興味がありますか?',
featuresAlreadyEnabled: '当社で最も人気のある機能はこちらです。',
diff --git a/src/languages/nl.ts b/src/languages/nl.ts
index eaa66601..e9150279 100644
--- a/src/languages/nl.ts
+++ b/src/languages/nl.ts
@@ -3334,10 +3334,7 @@ ${amount} voor ${merchant} - ${date}`,
[CONST.ONBOARDING_COMPANY_SIZE.MEDIUM]: '101-1.000 werknemers',
[CONST.ONBOARDING_COMPANY_SIZE.LARGE]: 'Meer dan 1.000 medewerkers',
},
- accounting: {
- title: 'Gebruikt u een boekhoudprogramma?',
- otherAccountingSoftware: 'Naam van de software',
- },
+ accounting: {title: 'Gebruikt u een boekhoudprogramma?', otherAccountingSoftware: 'Naam van de software'},
interestedFeatures: {
title: 'In welke functies ben je geïnteresseerd?',
featuresAlreadyEnabled: 'Hier zijn onze populairste functies:',
diff --git a/src/languages/pl.ts b/src/languages/pl.ts
index 2e936667..93bce0fe 100644
--- a/src/languages/pl.ts
+++ b/src/languages/pl.ts
@@ -3364,10 +3364,7 @@ ${amount} dla ${merchant} - ${date}`,
[CONST.ONBOARDING_COMPANY_SIZE.MEDIUM]: '101–1 000 pracowników',
[CONST.ONBOARDING_COMPANY_SIZE.LARGE]: 'Ponad 1000 pracowników',
},
- accounting: {
- title: 'Czy korzystasz z jakiegoś oprogramowania księgowego?',
- otherAccountingSoftware: 'Nazwa oprogramowania',
- },
+ accounting: {title: 'Czy korzystasz z jakiegoś oprogramowania księgowego?', otherAccountingSoftware: 'Nazwa oprogramowania'},
interestedFeatures: {
title: 'Jakie funkcje Cię interesują?',
featuresAlreadyEnabled: 'Oto nasze najpopularniejsze funkcje:',
diff --git a/src/languages/pt-BR.ts b/src/languages/pt-BR.ts
index bb25b9d5..87f6bef5 100644
--- a/src/languages/pt-BR.ts
+++ b/src/languages/pt-BR.ts
@@ -3323,10 +3323,7 @@ ${amount} para ${merchant} - ${date}`,
[CONST.ONBOARDING_COMPANY_SIZE.MEDIUM]: '101–1.000 funcionários',
[CONST.ONBOARDING_COMPANY_SIZE.LARGE]: 'Mais de 1.000 funcionários',
},
- accounting: {
- title: 'Você usa algum software de contabilidade?',
- otherAccountingSoftware: 'Nome do software',
- },
+ accounting: {title: 'Você usa algum software de contabilidade?', otherAccountingSoftware: 'Nome do software'},
interestedFeatures: {
title: 'Em quais recursos você tem interesse?',
featuresAlreadyEnabled: 'Aqui estão nossos recursos mais populares:',
diff --git a/src/languages/zh-hans.ts b/src/languages/zh-hans.ts
index 424eac3f..eb0e7dd9 100644
--- a/src/languages/zh-hans.ts
+++ b/src/languages/zh-hans.ts
@@ -3221,10 +3221,7 @@ ${amount},商户:${merchant} - 日期:${date}`,
[CONST.ONBOARDING_COMPANY_SIZE.MEDIUM]: '101–1,000 名员工',
[CONST.ONBOARDING_COMPANY_SIZE.LARGE]: '超过 1,000 名员工',
},
- accounting: {
- title: '你是否使用任何会计软件?',
- otherAccountingSoftware: '软件名称',
- },
+ accounting: {title: '你是否使用任何会计软件?', otherAccountingSoftware: '软件名称'},
interestedFeatures: {
title: '你对哪些功能感兴趣?',
featuresAlreadyEnabled: '以下是我们最受欢迎的功能:',
Note You can apply these changes to your branch by copying the patch to your clipboard, then running |
|
🤖 Android test steps verification results: The PR's Two things I could not cover, so they still need a human pass:
Test environment and how I got thereStandalone Android NewDot, The CI pre-start sign-in failed before this run began ( One dead end worth recording: on the first pass I tapped the Accounting checkbox on "What features are you interested in?", not realising it is pre-checked. That unchecked it, and view run · no recording available |
|
@MelvinBot close this PR |
|
🤖 Web test steps verification results: ❌ fail The PR's
Suggested fix for the two layout failures. The gap is additive on top of the percentage basis, so both breakpoints overflow by about a pixel: onboardingAccountingItemWide: {flexBasis: '32%', maxWidth: '32%'}, // 3 x 32% + 2 x 12px needs a >= 600px container; the modal gives 576px
onboardingAccountingItemNarrow: {flexBasis: '48.5%', maxWidth: '48.5%'}, // 2 x 48.5% + 12px needs a >= 400px container; a 411px viewport gives 371pxEither drop the percentages enough to leave room for the gap (roughly 31% and 47.5%), or compute the basis as Test environmentWeb build from One trap worth recording for future runs on this screen: Accounting is pre-checked on "What features are you interested in?". Unchecking it makes The CI pre-start also failed before this run ( view run · no recording available |
|
🤖 Closed. The branch For whoever takes it next, the Android run on this PR found one real bug worth carrying over: the tile grid renders a single column on narrow layouts because view run · no recording available |


















Explanation of Change
Rebuilds the onboarding "Do you use any accounting software?" step as the tile grid in the design mocks, and adds the accounting integrations that were missing from it.
Why it was stale: the option list was a second, disconnected source of truth.
BaseOnboardingAccounting.tsxdeclared its ownintegrationsarray and its owniconNameunion, unlinked toCONST.POLICY.CONNECTIONS.ACCOUNTING_CONNECTION_NAMES. Adding a connection never touched this screen and nothing failed, so Intuit Enterprise Suite, Certinia and Rillet never appeared here.What changed:
Tile grid. The old layout wrapped a full-width
RadioButtonWithLabelatflexBasis: '35%'— two columns on wide, one on narrow. It is now a tile (selection control top-left, logo centered, label underneath) at three columns wide and two narrow, matching the mocks. The transparent spacerViewthat keptOtherfrom stretching is gone, since 12 tiles fill both grids exactly.Three integrations added, in the mocks' order: Intuit Enterprise Suite, Certinia and Rillet. No new brand strings were added to the 11 locale files —
workspace.accounting.intuitEnterpriseSuiteandworkspace.accounting.rilletalready existed, and Certinia reusesworkspace.certinia.titlefrom its connection page.Downstream mapping.
ONBOARDING_ACCOUNTING_MAPPINGnow covers the new keys. Without this, picking Certinia would render the onboarding task as "Connect to financialforce" —ReportUtilsfalls back to the raw connection name.Copy. The
Otherinput label changes from "Your accounting software" to "Name of software" per the mocks, and the deadonboarding.accounting.nonestring is removed from all 11 locales (Nonewas removed from this screen earlier; a test already asserted it was absent).Notes for the reviewer — three things worth a second opinion:
Noneis gone, but all four mocks keep "Do you use any accounting software?" verbatim. I treated the mocks as authoritative. Say the word if the scope list wins.CONNECTIONS.CORPORATEandrequiresControlPlandon't know the new options.UPGRADE_FEATURE_INTRO_MAPPINGmarks Intuit Enterprise Suite asrequiredPlan: CORPORATEbut marks Certinia and Rillet as not Control-gated, so IES probably belongs in both lists. That's a product call I didn't want to guess at, andrequiresControlPlanis typedAllConnectionName[]whileintuitEnterpriseSuiteis an alias, not a connection name — so it needs a deliberate decision, not a cast.Two smaller calls: the selected-tile fill uses the existing
theme.reactionActiveBackgroundtoken (green100 light / green600 dark) because no "selected surface" green token exists — this needs checking against the Figma dark-mode frames, which I can't open. And the control is square like a checkbox to match the mocks but is announced as a radio, since only one option can be picked anduserReportedIntegrationis a single string.The mocks render the labels as "Quickbooks Online", "Netsuite" and "Dynamics". I kept the shipped brand casing (
QuickBooks Online,NetSuite,Microsoft Dynamics) and treated those as mock typos — let me know ifDynamicsis a deliberate truncation for tile width.I was not able to verify this visually in a browser: the test session handed to this run was already broken (the pre-start automation failed and the page rendered blank), so the screenshots below are empty and the UI still needs a human pass.
Fixed Issues
$ #100691
PROPOSAL: #100691 (comment)
Tests
// TODO: The human co-author must fill out the tests you ran before marking this PR as "ready for review"
// Please describe what tests you performed that validates your changed worked.
Offline tests
QA Steps
// TODO: The human co-author must fill out the QA tests you ran before marking this PR as "ready for review".
// Please describe what QA needs to do to validate your changes and what areas do they need to test for regressions.
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