Skip to content

Commit cd19088

Browse files
committed
Merge branch 'main' into fix/88788-next-step-approver
2 parents d3b734d + 3ec7273 commit cd19088

289 files changed

Lines changed: 8000 additions & 3978 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/test.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ jobs:
3939
key: ${{ runner.os }}-jest
4040

4141
- name: Jest tests
42-
run: npm test -- --silent --shard=${{ fromJSON(matrix.chunk) }}/${{ strategy.job-total }} --maxWorkers=2 --coverage --coverageDirectory=coverage/shard-${{ matrix.chunk }}
42+
run: npm test -- --silent --shard=${{ fromJSON(matrix.chunk) }}/${{ strategy.job-total }} --maxWorkers=6 --coverage --coverageDirectory=coverage/shard-${{ matrix.chunk }}
4343

4444
- name: Upload coverage to Codecov (PRs - tokenless)
4545
if: ${{ github.event_name == 'pull_request' }}

Mobile-Expensify

android/app/build.gradle

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -111,8 +111,8 @@ android {
111111
minSdkVersion rootProject.ext.minSdkVersion
112112
targetSdkVersion rootProject.ext.targetSdkVersion
113113
multiDexEnabled rootProject.ext.multiDexEnabled
114-
versionCode 1009038901
115-
versionName "9.3.89-1"
114+
versionCode 1009038905
115+
versionName "9.3.89-5"
116116
// Supported language variants must be declared here to avoid from being removed during the compilation.
117117
// This also helps us to not include unnecessary language variants in the APK.
118118
resConfigs "en", "es"

assets/images/illustration-laptop-members.svg

Lines changed: 1 addition & 0 deletions
Loading

assets/images/laptop-on-desk-with-coffee-and-key.svg

Lines changed: 1 addition & 1 deletion
Loading
Lines changed: 1 addition & 0 deletions
Loading

config/eslint/eslint.seatbelt.tsv

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
"../../src/Expensify.tsx" "react-hooks/set-state-in-effect" 1
1919
"../../src/GlobalModals.tsx" "no-restricted-syntax" 2
2020
"../../src/ONYXKEYS.ts" "no-restricted-syntax" 2
21-
"../../src/ROUTES.ts" "@typescript-eslint/no-deprecated/getUrlWithBackToParam" 153
21+
"../../src/ROUTES.ts" "@typescript-eslint/no-deprecated/getUrlWithBackToParam" 152
2222
"../../src/components/AccountingConnectionConfirmationModal.tsx" "@typescript-eslint/no-deprecated/ConfirmModal" 1
2323
"../../src/components/ActionSheetAwareScrollView/useActionSheetAwareScrollViewRef.ts" "react-hooks/immutability" 1
2424
"../../src/components/ActionSheetAwareScrollView/useActionSheetKeyboardSpacing.ts" "@typescript-eslint/no-deprecated/useScrollViewOffset" 1
@@ -123,6 +123,7 @@
123123
"../../src/components/MoneyRequestReportView/MoneyRequestReportActionsList.tsx" "@typescript-eslint/no-deprecated/InteractionManager.runAfterInteractions" 3
124124
"../../src/components/MoneyRequestReportView/MoneyRequestReportActionsList.tsx" "react-hooks/refs" 6
125125
"../../src/components/MoneyRequestReportView/MoneyRequestReportActionsList.tsx" "react-hooks/set-state-in-effect" 3
126+
"../../src/components/MoneyRequestReportView/MoneyRequestReportView.tsx" "@typescript-eslint/no-deprecated/InteractionManager.runAfterInteractions" 1
126127
"../../src/components/MultiGestureCanvas/index.tsx" "no-restricted-syntax" 1
127128
"../../src/components/MultiGestureCanvas/index.tsx" "react-hooks/preserve-manual-memoization" 1
128129
"../../src/components/MultiGestureCanvas/index.tsx" "react-hooks/refs" 2
@@ -208,7 +209,7 @@
208209
"../../src/hooks/useDialogContainerFocus/index.ts" "@typescript-eslint/no-deprecated/InteractionManager.runAfterInteractions" 1
209210
"../../src/hooks/useDomainGroupFilter.ts" "react-hooks/set-state-in-effect" 1
210211
"../../src/hooks/useDragAndDrop/types.ts" "@typescript-eslint/no-deprecated/React.MutableRefObject" 1
211-
"../../src/hooks/useExpenseActions.ts" "@typescript-eslint/no-deprecated/InteractionManager.runAfterInteractions" 2
212+
"../../src/hooks/useExpenseActions.ts" "@typescript-eslint/no-deprecated/InteractionManager.runAfterInteractions" 3
212213
"../../src/hooks/useFilesValidation.tsx" "@typescript-eslint/no-deprecated/ConfirmModal" 1
213214
"../../src/hooks/useInitial.ts" "react-hooks/refs" 4
214215
"../../src/hooks/useIsBlockedToAddFeed.ts" "react-hooks/set-state-in-effect" 1
@@ -386,19 +387,20 @@
386387
"../../src/libs/actions/ReimbursementAccount/resetNonUSDBankAccount.ts" "no-restricted-syntax" 1
387388
"../../src/libs/actions/ReimbursementAccount/resetUSDBankAccount.ts" "no-restricted-syntax" 1
388389
"../../src/libs/actions/Report/MarkAllMessageAsRead.tsx" "no-restricted-syntax" 1
389-
"../../src/libs/actions/Report/index.ts" "@typescript-eslint/no-deprecated/InteractionManager.runAfterInteractions" 1
390+
"../../src/libs/actions/Report/index.ts" "@typescript-eslint/no-deprecated/InteractionManager.runAfterInteractions" 2
390391
"../../src/libs/actions/Report/index.ts" "@typescript-eslint/no-deprecated/buildNextStepNew" 3
391392
"../../src/libs/actions/Report/index.ts" "@typescript-eslint/no-deprecated/reportAction.originalMessage" 1
392393
"../../src/libs/actions/Report/index.ts" "no-restricted-syntax" 10
393394
"../../src/libs/actions/Report/index.ts" "rulesdir/no-onyx-connect" 4
394395
"../../src/libs/actions/ReportLayout.ts" "no-restricted-syntax" 1
395396
"../../src/libs/actions/ScheduleCall.ts" "no-restricted-syntax" 1
396397
"../../src/libs/actions/Search.ts" "no-restricted-syntax" 1
397-
"../../src/libs/actions/Session/index.ts" "no-restricted-imports" 1
398+
"../../src/libs/actions/Session/index.ts" "@typescript-eslint/no-deprecated/InteractionManager.runAfterInteractions" 1
398399
"../../src/libs/actions/Session/index.ts" "no-restricted-syntax" 9
399400
"../../src/libs/actions/Session/index.ts" "rulesdir/no-onyx-connect" 2
400401
"../../src/libs/actions/StatsCounter.ts" "no-restricted-syntax" 2
401402
"../../src/libs/actions/Subscription.ts" "no-restricted-syntax" 1
403+
"../../src/libs/actions/Task.ts" "@typescript-eslint/no-deprecated/InteractionManager.runAfterInteractions" 1
402404
"../../src/libs/actions/Task.ts" "no-restricted-syntax" 7
403405
"../../src/libs/actions/TaxRate.ts" "no-restricted-syntax" 1
404406
"../../src/libs/actions/TeachersUnite.ts" "no-restricted-syntax" 1
@@ -464,7 +466,7 @@
464466
"../../src/pages/RoomMembersPage.tsx" "react-hooks/set-state-in-effect" 1
465467
"../../src/pages/ScheduleCall/ScheduleCallPage.tsx" "react-hooks/preserve-manual-memoization" 1
466468
"../../src/pages/Search/SearchAdvancedFiltersPage/SearchFiltersCardPage.tsx" "react-hooks/set-state-in-effect" 1
467-
"../../src/pages/Search/SearchMoneyRequestReportPage.tsx" "no-restricted-imports" 1
469+
"../../src/pages/Search/SearchMoneyRequestReportPage.tsx" "@typescript-eslint/no-deprecated/InteractionManager.runAfterInteractions" 1
468470
"../../src/pages/Search/SearchPage.tsx" "react-hooks/set-state-in-effect" 1
469471
"../../src/pages/Search/SearchTransactionsChangeReport.tsx" "@typescript-eslint/no-deprecated/InteractionManager.runAfterInteractions" 1
470472
"../../src/pages/Share/ShareRootPage.tsx" "@typescript-eslint/no-deprecated/InteractionManager.runAfterInteractions" 1
@@ -473,12 +475,13 @@
473475
"../../src/pages/ValidateLoginPage/index.web.tsx" "react-hooks/set-state-in-effect" 1
474476
"../../src/pages/domain/Groups/PreferredWorkspaceToggle.tsx" "@typescript-eslint/no-deprecated/ConfirmModal" 1
475477
"../../src/pages/domain/Saml/SamlLoginSectionContent.tsx" "@typescript-eslint/no-deprecated/ConfirmModal" 1
476-
"../../src/pages/inbox/DeleteTransactionNavigateBackHandler.tsx" "no-restricted-imports" 1
478+
"../../src/pages/inbox/DeleteTransactionNavigateBackHandler.tsx" "@typescript-eslint/no-deprecated/InteractionManager.runAfterInteractions" 1
477479
"../../src/pages/inbox/ReportFetchHandler.tsx" "@typescript-eslint/no-deprecated/InteractionManager.runAfterInteractions" 2
478480
"../../src/pages/inbox/ReportNavigateAwayHandler.tsx" "react-hooks/exhaustive-deps" 1
479481
"../../src/pages/inbox/hooks/useDeferNonEssentials.ts" "no-restricted-imports" 2
480482
"../../src/pages/inbox/hooks/useFlushDeferredWriteOnFocus.ts" "no-restricted-imports" 1
481483
"../../src/pages/inbox/hooks/useReportWasDeleted.ts" "react-hooks/set-state-in-effect" 1
484+
"../../src/pages/inbox/report/ContextMenu/BaseReportActionContextMenu.tsx" "@typescript-eslint/no-deprecated/InteractionManager.runAfterInteractions" 1
482485
"../../src/pages/inbox/report/ContextMenu/BaseReportActionContextMenu.tsx" "react-hooks/preserve-manual-memoization" 1
483486
"../../src/pages/inbox/report/ContextMenu/BaseReportActionContextMenu.tsx" "react-hooks/refs" 1
484487
"../../src/pages/inbox/report/ContextMenu/PopoverReportActionContextMenu.tsx" "@typescript-eslint/no-deprecated/ConfirmModal" 1
@@ -495,7 +498,7 @@
495498
"../../src/pages/inbox/report/ReportActionItemMessageEdit.tsx" "react-hooks/preserve-manual-memoization" 1
496499
"../../src/pages/inbox/report/ReportActionItemMessageEdit.tsx" "react-hooks/refs" 5
497500
"../../src/pages/inbox/report/ReportActionItemMessageEdit.tsx" "react-hooks/set-state-in-effect" 1
498-
"../../src/pages/inbox/report/ReportActionsList.tsx" "no-restricted-imports" 1
501+
"../../src/pages/inbox/report/ReportActionsList.tsx" "@typescript-eslint/no-deprecated/InteractionManager.runAfterInteractions" 4
499502
"../../src/pages/inbox/report/ReportActionsList.tsx" "react-hooks/refs" 5
500503
"../../src/pages/inbox/report/ReportActionsList.tsx" "react-hooks/set-state-in-effect" 3
501504
"../../src/pages/inbox/report/TripSummary.tsx" "rulesdir/no-default-id-values" 1
@@ -622,8 +625,9 @@
622625
"../../src/pages/workspace/categories/WorkspaceCategoriesPage.tsx" "react-hooks/set-state-in-effect" 2
623626
"../../src/pages/workspace/companyCards/BankConnection/index.tsx" "react-hooks/set-state-in-effect" 1
624627
"../../src/pages/workspace/companyCards/WorkspaceVerifyWorkAccountPage.tsx" "react-hooks/set-state-in-effect" 1
625-
"../../src/pages/workspace/companyCards/addNew/AddNewCardPage.tsx" "@typescript-eslint/no-deprecated/ConfirmModal" 1
628+
"../../src/pages/workspace/companyCards/addNew/DynamicAddNewCardPage.tsx" "@typescript-eslint/no-deprecated/ConfirmModal" 1
626629
"../../src/pages/workspace/companyCards/addNew/PlaidConnectionStep.tsx" "@typescript-eslint/no-deprecated/InteractionManager.runAfterInteractions" 1
630+
"../../src/pages/workspace/companyCards/assignCard/ConfirmationStep.tsx" "@typescript-eslint/no-deprecated/InteractionManager.runAfterInteractions" 1
627631
"../../src/pages/workspace/distanceRates/PolicyDistanceRatesPage.tsx" "react-hooks/preserve-manual-memoization" 1
628632
"../../src/pages/workspace/downgrade/WorkspaceDowngradePage.tsx" "@typescript-eslint/no-deprecated/ConfirmModal" 1
629633
"../../src/pages/workspace/downgrade/WorkspaceDowngradePage.tsx" "@typescript-eslint/no-deprecated/InteractionManager.runAfterInteractions" 2
@@ -648,7 +652,6 @@
648652
"../../src/pages/workspace/taxes/WorkspaceTaxesPage.tsx" "react-hooks/set-state-in-effect" 1
649653
"../../src/pages/workspace/travel/WorkspaceTravelInvoicingSection.tsx" "@typescript-eslint/no-deprecated/ConfirmModal" 3
650654
"../../src/pages/workspace/workflows/WorkspaceWorkflowsPage.tsx" "@typescript-eslint/no-deprecated/InteractionManager.runAfterInteractions" 1
651-
"../../src/pages/workspace/workflows/WorkspaceWorkflowsPage.tsx" "react-hooks/preserve-manual-memoization" 3
652655
"../../src/pages/workspace/workflows/WorkspaceWorkflowsPayerPage.tsx" "@typescript-eslint/no-deprecated/ConfirmModal" 2
653656
"../../src/stories/ReportActionItemImages.stories.tsx" "no-restricted-syntax" 1
654657
"../../src/stories/TextInput.stories.tsx" "react-hooks/set-state-in-effect" 1
@@ -657,7 +660,6 @@
657660
"../../src/types/onyx/AccountData.ts" "no-restricted-syntax" 1
658661
"../../src/types/onyx/BankAccount.ts" "no-restricted-syntax" 1
659662
"../../src/types/onyx/CancellationDetails.ts" "no-restricted-syntax" 1
660-
"../../src/types/onyx/Card.ts" "no-restricted-syntax" 1
661663
"../../src/types/onyx/CardFeeds.ts" "no-restricted-syntax" 1
662664
"../../src/types/onyx/Domain.ts" "no-restricted-syntax" 1
663665
"../../src/types/onyx/DomainErrors.ts" "no-restricted-syntax" 1

cspell.json

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -163,10 +163,12 @@
163163
"IHDR",
164164
"INTECOMS",
165165
"IPHONEOS",
166+
"ITIN",
166167
"ITSM",
167168
"Idology",
168169
"Inactives",
169170
"Inclusivity",
171+
"innerradius",
170172
"Intacct",
171173
"Invoicify",
172174
"Italiano",
@@ -494,6 +496,7 @@
494496
"codegen",
495497
"codeshare",
496498
"codesign",
499+
"colorscale",
497500
"commentbubbles",
498501
"contenteditable",
499502
"copiloted",
@@ -655,7 +658,9 @@
655658
"killall",
656659
"kilometre",
657660
"kilometres",
661+
"labelcomponent",
658662
"labelledby",
663+
"labelradius",
659664
"laggy",
660665
"lastiPhoneLogin",
661666
"lastname",
@@ -664,6 +669,7 @@
664669
"lightningcss",
665670
"linecap",
666671
"linejoin",
672+
"lineheight",
667673
"lintable",
668674
"lintrk",
669675
"listformat",
@@ -740,6 +746,7 @@
740746
"onloaderror",
741747
"onopentag",
742748
"onplayerror",
749+
"ontext",
743750
"onxy",
744751
"openxmlformats",
745752
"ordinality",
@@ -866,6 +873,7 @@
866873
"tabindex",
867874
"teachersunite",
868875
"testflight",
876+
"textanchor",
869877
"threadsafe",
870878
"thumbsup",
871879
"tickcount",
@@ -908,13 +916,15 @@
908916
"useMemo",
909917
"usernotifications",
910918
"utilise",
919+
"verticalanchor",
911920
"victoryaxis",
912921
"victorybar",
913922
"victorychart",
914923
"victorygroup",
915924
"victorylabel",
916925
"victorylegend",
917926
"victoryline",
927+
"victorypie",
918928
"viewability",
919929
"viewport",
920930
"viewports",

docs/articles/expensify-classic/bank-accounts-and-payments/bank-accounts/Troubleshooting-business-bank-account-setups.md

Lines changed: 43 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
title: Troubleshooting business bank account setup
33
description: Fix common errors when adding or verifying a verified business bank account in Expensify.
4-
keywords: [bank account troubleshooting, verified business account, Onfido error, missing test transactions, ACH whitelisting, ID upload issues, missing verification amounts, missing micro deposits]
4+
keywords: [bank account troubleshooting, verified business account, Onfido error, missing test transactions, ACH whitelisting, ID upload issues, missing verification amounts, missing micro deposits, validation failed, test deposits wrong, Fix button missing, Unlock button missing, bank account pending, verification stuck, documentation review]
55
---
66
<div id="expensify-classic" markdown="1">
77

@@ -99,4 +99,46 @@ Yes. Expensify cannot process payments for:
9999

100100
If your business operates in one of these industries, you may not be able to use Expensify for payments.
101101

102+
---
103+
104+
# Troubleshooting Test Transaction Validation
105+
106+
## I entered the correct test transaction amounts but validation failed
107+
108+
If you can see the test transactions in your bank account but the amounts are being rejected:
109+
110+
- **Wait for transactions to fully post.** Pending transactions may display slightly different amounts than the final posted values. Only enter amounts after they have fully posted.
111+
- **Double-check for rounding.** Enter the exact amounts including cents. Even a one-cent difference will cause validation to fail.
112+
- **Verify you have the right transactions.** Look for transactions labeled "Expensify, Inc. Validation" or similar. If you have multiple bank accounts connected, make sure you are not mixing up transactions from different accounts.
113+
114+
If you have confirmed all of the above and validation still fails, contact Concierge for assistance.
115+
116+
## Validation is temporarily locked after multiple failed attempts
117+
118+
Entering incorrect amounts multiple times will temporarily lock the validation process. The lock typically lasts a few hours. After the lock period, retry by navigating to your bank account in **Settings > Account > Payments** and clicking the pending bank account.
119+
120+
If you are unable to validate after the lock period has passed, contact Concierge.
121+
122+
## Test transactions expired or validation window closed
123+
124+
Test transactions and the validation window are active for a limited time. If you did not complete validation before the window expired, contact Concierge to request a new set of test transactions.
125+
126+
---
127+
128+
# Troubleshooting Additional Documentation Review
129+
130+
## Concierge says my account requires additional documentation
131+
132+
If automatic verification cannot be completed, Expensify may request a manual review of your supporting documents. This can happen when:
133+
134+
- Business information does not match public records
135+
- The business is newly formed or has limited public data
136+
- Additional verification is required for compliance reasons
137+
138+
Concierge will send you a message with specific instructions on what to provide. Common documents include a bank statement, business license, articles of incorporation, or EIN confirmation letter.
139+
140+
## How long does the documentation review take?
141+
142+
Reviews are typically completed within **1-3 business days** after all requested documents are submitted. You will receive a message from Concierge when the review is complete. If your review is taking longer than expected, contact Concierge for a status update.
143+
102144
</div>

docs/articles/new-expensify/connect-credit-cards/Assign-Company-Cards.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,8 @@ Workspace Admins and their Copilots can assign company cards after a company car
1818
If you haven’t set up a feed yet, learn how to set one up:
1919

2020
- [Learn how to set up a direct company card feed connection](/articles/new-expensify/connect-credit-cards/Set-up-a-Direct-Company-Card-Feed-Connection).
21-
- [Learn how to set up a commercial card feed connection](/articles/new-expensify/connect-credit-cards/Set-up-a-Commercial-Card-Feed-Connection).
21+
- [Learn how to set up a commercial card feed connection](/articles/new-expensify/connect-credit-cards/Set-up-a-Commercial-Card-Feed-Connection).
22+
- [Learn how to import company card transactions from a spreadsheet](/articles/new-expensify/connect-credit-cards/Import-Company-Card-Transactions-From-a-Spreadsheet).
2223

2324
## How to assign company cards
2425

0 commit comments

Comments
 (0)