Skip to content

Commit ce61065

Browse files
committed
Merge remote-tracking branch 'origin/main' into revert-89808
2 parents 922279f + 3f7c7a6 commit ce61065

175 files changed

Lines changed: 5482 additions & 2232 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.

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 1009036916
115-
versionName "9.3.69-16"
114+
versionCode 1009037001
115+
versionName "9.3.70-1"
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"

config/eslint/eslint.seatbelt.tsv

Lines changed: 9 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -425,7 +425,6 @@
425425
"../../src/libs/actions/TwoFactorAuthActions.ts" "@typescript-eslint/no-deprecated/InteractionManager.runAfterInteractions" 1
426426
"../../src/libs/actions/UnreportedExpenses.tsx" "no-restricted-syntax" 1
427427
"../../src/libs/actions/User.ts" "no-restricted-syntax" 8
428-
"../../src/libs/actions/User.ts" "rulesdir/no-onyx-connect" 1
429428
"../../src/libs/actions/VacationDelegate.ts" "no-restricted-syntax" 2
430429
"../../src/libs/actions/Wallet.ts" "no-restricted-syntax" 1
431430
"../../src/libs/actions/Welcome/index.ts" "no-restricted-syntax" 1
@@ -500,7 +499,7 @@
500499
"../../src/pages/domain/Groups/PreferredWorkspaceToggle.tsx" "@typescript-eslint/no-deprecated/ConfirmModal" 1
501500
"../../src/pages/domain/Saml/SamlLoginSectionContent.tsx" "@typescript-eslint/no-deprecated/ConfirmModal" 1
502501
"../../src/pages/inbox/DeleteTransactionNavigateBackHandler.tsx" "@typescript-eslint/no-deprecated/InteractionManager.runAfterInteractions" 1
503-
"../../src/pages/inbox/ReportFetchHandler.tsx" "@typescript-eslint/no-deprecated/InteractionManager.runAfterInteractions" 3
502+
"../../src/pages/inbox/ReportFetchHandler.tsx" "@typescript-eslint/no-deprecated/InteractionManager.runAfterInteractions" 2
504503
"../../src/pages/inbox/ReportNavigateAwayHandler.tsx" "react-hooks/exhaustive-deps" 1
505504
"../../src/pages/inbox/hooks/useReportWasDeleted.ts" "react-hooks/set-state-in-effect" 1
506505
"../../src/pages/inbox/report/ContextMenu/BaseReportActionContextMenu.tsx" "@typescript-eslint/no-deprecated/InteractionManager.runAfterInteractions" 1
@@ -509,24 +508,23 @@
509508
"../../src/pages/inbox/report/ContextMenu/ContextMenuActions.tsx" "@typescript-eslint/no-deprecated/getReportNameDeprecated" 1
510509
"../../src/pages/inbox/report/ContextMenu/PopoverReportActionContextMenu.tsx" "@typescript-eslint/no-deprecated/ConfirmModal" 1
511510
"../../src/pages/inbox/report/ContextMenu/PopoverReportActionContextMenu.tsx" "@typescript-eslint/no-deprecated/InteractionManager.runAfterInteractions" 1
512-
"../../src/pages/inbox/report/ContextMenu/PopoverReportActionContextMenu.tsx" "react-hooks/refs" 30
511+
"../../src/pages/inbox/report/ContextMenu/PopoverReportActionContextMenu.tsx" "react-hooks/refs" 29
513512
"../../src/pages/inbox/report/ListBoundaryLoader.tsx" "react-hooks/set-state-in-effect" 1
514513
"../../src/pages/inbox/report/PureReportActionItem.tsx" "react-hooks/refs" 2
515514
"../../src/pages/inbox/report/PureReportActionItem.tsx" "react-hooks/set-state-in-effect" 1
516515
"../../src/pages/inbox/report/ReactionList/HeaderReactionList.tsx" "no-restricted-syntax" 1
517-
"../../src/pages/inbox/report/ReportActionCompose/ComposerWithSuggestions.tsx" "@typescript-eslint/no-deprecated/InteractionManager.runAfterInteractions" 2
518-
"../../src/pages/inbox/report/ReportActionCompose/ComposerWithSuggestions.tsx" "react-hooks/preserve-manual-memoization" 2
519-
"../../src/pages/inbox/report/ReportActionCompose/ComposerWithSuggestions.tsx" "react-hooks/refs" 8
516+
"../../src/pages/inbox/report/ReportActionCompose/ComposerWithSuggestions.tsx" "@typescript-eslint/no-deprecated/InteractionManager.runAfterInteractions" 1
517+
"../../src/pages/inbox/report/ReportActionCompose/ComposerWithSuggestions.tsx" "react-hooks/refs" 7
520518
"../../src/pages/inbox/report/ReportActionCompose/SuggestionEmoji.tsx" "react-hooks/refs" 1
521519
"../../src/pages/inbox/report/ReportActionCompose/SuggestionMention.tsx" "react-hooks/refs" 3
522520
"../../src/pages/inbox/report/ReportActionItemMessage.tsx" "@typescript-eslint/no-deprecated/getReportName" 1
523-
"../../src/pages/inbox/report/ReportActionItemMessageEdit.tsx" "@typescript-eslint/no-deprecated/InteractionManager.runAfterInteractions" 2
521+
"../../src/pages/inbox/report/ReportActionItemMessageEdit.tsx" "@typescript-eslint/no-deprecated/InteractionManager.runAfterInteractions" 1
524522
"../../src/pages/inbox/report/ReportActionItemMessageEdit.tsx" "no-restricted-syntax" 1
525523
"../../src/pages/inbox/report/ReportActionItemMessageEdit.tsx" "react-hooks/preserve-manual-memoization" 1
526-
"../../src/pages/inbox/report/ReportActionItemMessageEdit.tsx" "react-hooks/refs" 6
524+
"../../src/pages/inbox/report/ReportActionItemMessageEdit.tsx" "react-hooks/refs" 5
527525
"../../src/pages/inbox/report/ReportActionItemMessageEdit.tsx" "react-hooks/set-state-in-effect" 1
528-
"../../src/pages/inbox/report/ReportActionsList.tsx" "@typescript-eslint/no-deprecated/InteractionManager.runAfterInteractions" 5
529-
"../../src/pages/inbox/report/ReportActionsList.tsx" "react-hooks/refs" 7
526+
"../../src/pages/inbox/report/ReportActionsList.tsx" "@typescript-eslint/no-deprecated/InteractionManager.runAfterInteractions" 4
527+
"../../src/pages/inbox/report/ReportActionsList.tsx" "react-hooks/refs" 5
530528
"../../src/pages/inbox/report/ReportActionsList.tsx" "react-hooks/set-state-in-effect" 3
531529
"../../src/pages/inbox/report/ReportActionsView.tsx" "react-hooks/globals" 1
532530
"../../src/pages/inbox/report/ReportActionsView.tsx" "react-hooks/preserve-manual-memoization" 1
@@ -553,9 +551,8 @@
553551
"../../src/pages/iou/request/step/IOURequestStepDistanceGPS/GPSButtons/index.tsx" "@typescript-eslint/no-deprecated/ConfirmModal" 3
554552
"../../src/pages/iou/request/step/IOURequestStepDistanceMap.tsx" "react-hooks/set-state-in-effect" 1
555553
"../../src/pages/iou/request/step/IOURequestStepDistanceOdometer.tsx" "@typescript-eslint/no-deprecated/InteractionManager.runAfterInteractions" 1
556-
"../../src/pages/iou/request/step/IOURequestStepDistanceOdometer.tsx" "react-hooks/set-state-in-effect" 1
557554
"../../src/pages/iou/request/step/IOURequestStepMerchant.tsx" "@typescript-eslint/no-deprecated/InteractionManager.runAfterInteractions" 1
558-
"../../src/pages/iou/request/step/IOURequestStepReport.tsx" "@typescript-eslint/no-deprecated/InteractionManager.runAfterInteractions" 2
555+
"../../src/pages/iou/request/step/IOURequestStepReport/hooks/useReportSelectionActions.ts" "@typescript-eslint/no-deprecated/InteractionManager.runAfterInteractions" 2
559556
"../../src/pages/iou/request/step/IOURequestStepScan/ReceiptView/index.tsx" "@typescript-eslint/no-deprecated/InteractionManager.runAfterInteractions" 1
560557
"../../src/pages/iou/request/step/IOURequestStepScan/ReceiptView/index.tsx" "react-hooks/set-state-in-effect" 1
561558
"../../src/pages/iou/request/step/IOURequestStepScan/components/MobileWebCameraView.tsx" "react-hooks/immutability" 1

contributingGuides/PAYMENT_VIA_EXPENSIFY.md

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,21 @@ Contributors are eligible to be paid via Expensify 18 months after they were ass
44
- You’ll need to create an Expensify account and Connect Personal Bank Account. To receive payments in USD, GBP, or EUR, add receiving accounts in those currencies via platforms like Wise, Payoneer, PingPong, Skydo, etc.
55
- Payoneer provides a U.S.-based USD account through Citibank. Since you won’t have direct access to a Citibank online account, you’ll need to connect the bank account manually instead of using Plaid.
66
- You can do this in **oldDot** by navigating to: Settings > Account > Wallet > Add Personal Bank Account > Connect manually.
7-
- Skydo is a service that contributors in India have used.
7+
- Skydo is a service that contributors in India have used [Slack Thread](https://expensify.slack.com/archives/C02NK2DQWUX/p1761116747758089).
88
- View [Enable Global Reimbursement](https://help.expensify.com/articles/expensify-classic/bank-accounts-and-payments/payments/Enable-Global-Reimbursement) to get more details on setting up reimbursements in United States (USD), Canada (CAD), United Kingdom (GBP), European Union (EUR), Australia (AUD) and Singapore (SGD) currencies.
99
- View [Receive Payments](https://help.expensify.com/articles/expensify-classic/bank-accounts-and-payments/payments/Receive-Payments) for details on receiving payments in the US and internationally, including via Wise (formerly TransferWise), Paypal, Venmo and more.
1010

1111
After approval it can take between 1 business day and a week, depending on the country and service you use.
1212

13+
## Requesting Payments
14+
Request payment, by submitting your reports, in the same month the payment summary is posted. If that is not possible, request it as soon as possible after month-end. This is a hard requirement.
15+
16+
Include in the Description field a link to the payment confirmation posted by the Expensify employee for which payment is due. Please do not add any additional details.
17+
**Do not ever request payment before an employee has posted a payment summary.**
18+
19+
**Important!:** If you’re new to NewDot payments, please double check your eligibility date against the date you were assigned to a GH issue. If you were assigned to a GH issue before your eligibility date, you must be paid via Upwork.
20+
21+
1322
## For issues with deposits
1423
If you're having an issue with the deposit, ie. a report gets _stuck_ in a state like Approved, start a chat with Concierge to ask for help. Provide as many details below as possible
1524

@@ -22,3 +31,16 @@ If you're having an issue with the deposit, ie. a report gets _stuck_ in a state
2231
> - Location of reimbursement account
2332
> - Have you received reimbursements to the connected deposit account successfully in the past?
2433
34+
## Refund Process
35+
In case you have been over-paid (e.g. regression penalty was not applied, dupe request for payment, etc.) you can issue a refund by submitting a negative expense to your workspace report. (OldDot Only)
36+
1. Go to OldDot
37+
2. Click on your avatar and in the “Use this expense workspace” section verify that the correct workspace is selected (Contributors+ - Expensify Inc)
38+
3. Go to Expenses then press New Expense > Manually Create
39+
4. In the merchant and the description fields link to the related GH issue and in the total put the amount you want to refund but in negative e.g. -125
40+
5. Click on Save
41+
6. Post on the issue you’re refunding to denote the refund, amount and the Report ID
42+
43+
44+
**Note:** This process will not actually issue a refund (i.e. money won’t be deducted from your bank account). You will need to offset the refund with a positive payment that is equal or greater than the negative expense. e.g. if you later on submitted an expense for $1,000, the report’s total would be $875 ($1,000 less the $125 you’re refunding)
45+
46+
If you need to “hold back” expenses in order to have a report total that is positive, remove the category and tag and description then they will not auto submit. **When you are done doing this, you MUST SUBMIT YOUR REPORT MANUALLY**, otherwise auto submit will split them into 2 reports and what you did will be in vain.

docs/articles/new-expensify/reports-and-expenses/Getting-Started-with-the-Spend-Page.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
title: Getting Started with the Spend Page
33
description: Learn how to use the Spend page in New Expensify to view, filter, and manage your expense data using report previews, tables, filters, and smart suggestions.
4-
keywords: [New Expensify, Spend page, report preview, report table, filters, smart suggestions, expense management, add expenses, bulk actions, date range, search, expenses missing, Spend navigation]
4+
keywords: [New Expensify, Spend page, report preview, report table, filters, smart suggestions, expense management, add expenses, bulk actions, date range, search, expenses missing, Spend navigation, inline editing, edit expense inline]
55
---
66

77
The Spend page in New Expensify gives you a complete view of your submitted, approved, and reimbursed expenses—all in one place. This guide shows you how to use report previews, tables, filters, and smart suggestions to track, manage, and take action on your expenses more efficiently.
@@ -49,6 +49,7 @@ Each row represents an expense and includes:
4949

5050
## Available Actions on the Table
5151
- **Click an expense** to view or edit it in the right-hand panel
52+
- **Edit a cell directly (desktop only):** Click a **date**, **merchant**, **description**, **category**, or **amount** cell to edit the value inline without opening the expense details. Click outside the cell or press Enter to save.
5253
- **Select multiple expenses** using checkboxes, then apply bulk actions such as:
5354
- **Move to another report:** When you need to have multiple reports or need to break up expenses across multiple weeks or months.
5455
- **Download:** For exporting to a CSV file for analysis or to share with your accountant.

docs/articles/new-expensify/reports-and-expenses/Managing-Expenses-in-a-Report.md

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
title: Managing Expenses in a Report
33
description: Learn how to add, remove, and move expenses in a report in New Expensify, including how comments and system messages interact with them.
4-
keywords: [New Expensify, manage expenses, add expense, delete expense, move expense, expense table, edit report, report approval, expense actions, create report, admin create report]
4+
keywords: [New Expensify, manage expenses, add expense, delete expense, move expense, expense table, edit report, report approval, expense actions, create report, admin create report, inline editing, edit expense inline]
55
---
66

77
Easily add, delete, or move expenses within reports in New Expensify. This guide covers how to manage expenses using the expense table on both web and mobile.
@@ -98,6 +98,16 @@ Additional columns such as **Attendees** and **Per attendee** can be enabled via
9898

9999
Clicking a row opens the full expense in a side panel (web) or details screen (mobile).
100100

101+
## How to edit expenses inline on desktop
102+
103+
On desktop, you can edit certain expense fields directly in the table without opening the expense details:
104+
105+
1. Click a **date**, **merchant**, **description**, **category**, or **amount** cell in the expense table.
106+
2. Edit the value using the inline editor that appears (a text input, date picker, or category picker depending on the field).
107+
3. Click outside the cell or press Enter to save your changes.
108+
109+
**Note:** Inline editing is only available on desktop (wide layout). On mobile, tap the expense row to open the full details screen.
110+
101111
---
102112

103113
# FAQ

ios/NewExpensify/Info.plist

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
<key>CFBundlePackageType</key>
2424
<string>APPL</string>
2525
<key>CFBundleShortVersionString</key>
26-
<string>9.3.69</string>
26+
<string>9.3.70</string>
2727
<key>CFBundleSignature</key>
2828
<string>????</string>
2929
<key>CFBundleURLTypes</key>
@@ -44,7 +44,7 @@
4444
</dict>
4545
</array>
4646
<key>CFBundleVersion</key>
47-
<string>9.3.69.16</string>
47+
<string>9.3.70.1</string>
4848
<key>FullStory</key>
4949
<dict>
5050
<key>OrgId</key>

ios/NotificationServiceExtension/Info.plist

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,9 @@
1111
<key>CFBundleName</key>
1212
<string>$(PRODUCT_NAME)</string>
1313
<key>CFBundleShortVersionString</key>
14-
<string>9.3.69</string>
14+
<string>9.3.70</string>
1515
<key>CFBundleVersion</key>
16-
<string>9.3.69.16</string>
16+
<string>9.3.70.1</string>
1717
<key>NSExtension</key>
1818
<dict>
1919
<key>NSExtensionPointIdentifier</key>

ios/ShareViewController/Info.plist

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,9 @@
1111
<key>CFBundleName</key>
1212
<string>$(PRODUCT_NAME)</string>
1313
<key>CFBundleShortVersionString</key>
14-
<string>9.3.69</string>
14+
<string>9.3.70</string>
1515
<key>CFBundleVersion</key>
16-
<string>9.3.69.16</string>
16+
<string>9.3.70.1</string>
1717
<key>NSExtension</key>
1818
<dict>
1919
<key>NSExtensionAttributes</key>

package-lock.json

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)