Skip to content

Commit 36bea10

Browse files
resolve merge conflicts
2 parents d2269cd + a8bf844 commit 36bea10

232 files changed

Lines changed: 9430 additions & 5072 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.
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
name: 'Check Test Coverage'
2+
description: 'A simple action that takes a GitHub URL and prints it'
3+
inputs:
4+
GITHUB_URL:
5+
description: 'GitHub repository URL to check'
6+
required: true
7+
8+
runs:
9+
using: 'node20'
10+
main: './index.js'
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
const core = require('@actions/core');
2+
3+
async function run() {
4+
try {
5+
// Get the GitHub URL input
6+
const githubUrl = core.getInput('GITHUB_URL');
7+
8+
// Print the URL
9+
console.log(`GitHub URL: ${githubUrl}`);
10+
core.info(`GitHub URL: ${githubUrl}`);
11+
12+
} catch (error) {
13+
core.setFailed(error.message);
14+
}
15+
}
16+
17+
run();
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
name: Check Test Coverage
2+
3+
on:
4+
workflow_dispatch:
5+
inputs:
6+
github_url:
7+
description: 'GitHub repository URL to check'
8+
required: true
9+
type: string
10+
11+
jobs:
12+
check-coverage:
13+
runs-on: ubuntu-latest
14+
name: Check Test Coverage
15+
steps:
16+
- name: Checkout
17+
uses: actions/checkout@v4
18+
19+
- name: Check Test Coverage
20+
uses: ./.github/actions/javascript/checkTestCoverage
21+
with:
22+
GITHUB_URL: ${{ inputs.github_url }}

Mobile-Expensify

__mocks__/@react-navigation/native/index.ts

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ const realReactNavigation = isJestEnv ? jest.requireActual<typeof ReactNavigatio
88

99
const useIsFocused = isJestEnv ? realReactNavigation.useIsFocused : () => true;
1010
const useTheme = isJestEnv ? realReactNavigation.useTheme : () => ({});
11+
const useLocale = isJestEnv ? realReactNavigation.useTheme : () => ({});
1112

1213
const {triggerTransitionEnd, addListener} = isJestEnv
1314
? createAddListenerMock()
@@ -44,14 +45,14 @@ const useLinkTo = isJestEnv ? realReactNavigation.useLinkTo : () => null;
4445
const useScrollToTop = isJestEnv ? realReactNavigation.useScrollToTop : () => null;
4546
const useRoute = isJestEnv ? realReactNavigation.useRoute : () => ({params: {}});
4647
const useFocusEffect = isJestEnv ? realReactNavigation.useFocusEffect : (callback: () => void) => callback();
47-
// eslint-disable-next-line @typescript-eslint/naming-convention
48-
const UNSTABLE_usePreventRemove = isJestEnv ? jest.fn() : () => {};
48+
const usePreventRemove = isJestEnv ? jest.fn() : () => {};
4949

5050
export {
5151
// Overridden modules
5252
useIsFocused,
5353
useTheme,
5454
useNavigation,
55+
useLocale,
5556
triggerTransitionEnd,
5657

5758
// Theme modules are left alone
@@ -68,7 +69,7 @@ export {
6869
useScrollToTop,
6970
useRoute,
7071
useFocusEffect,
71-
UNSTABLE_usePreventRemove,
72+
usePreventRemove,
7273
};
7374

7475
export type {NativeNavigationMock};

android/app/build.gradle

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -114,8 +114,8 @@ android {
114114
minSdkVersion rootProject.ext.minSdkVersion
115115
targetSdkVersion rootProject.ext.targetSdkVersion
116116
multiDexEnabled rootProject.ext.multiDexEnabled
117-
versionCode 1009017108
118-
versionName "9.1.71-8"
117+
versionCode 1009017200
118+
versionName "9.1.72-0"
119119
// Supported language variants must be declared here to avoid from being removed during the compilation.
120120
// This also helps us to not include unnecessary language variants in the APK.
121121
resConfigs "en", "es"

config/webpack/webpack.common.ts

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,10 @@ const includeModules = [
3333
'react-native-web',
3434
'react-native-webview',
3535
'@react-native-picker',
36+
'@react-navigation/material-top-tabs',
37+
'@react-navigation/native',
38+
'@react-navigation/native-stack',
39+
'@react-navigation/stack',
3640
'react-native-modal',
3741
'react-native-gesture-handler',
3842
'react-native-google-places-autocomplete',
@@ -160,6 +164,12 @@ const getCommonConfiguration = ({file = '.env', platform = 'web'}: Environment):
160164
],
161165
module: {
162166
rules: [
167+
{
168+
test: /\.m?js$/,
169+
resolve: {
170+
fullySpecified: false,
171+
},
172+
},
163173
// Transpiles and lints all the JS
164174
{
165175
test: /\.(js|ts)x?$/,

cspell.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -682,7 +682,8 @@
682682
"zoneinfo",
683683
"zxcv",
684684
"zxldvw",
685-
"مثال"
685+
"مثال",
686+
"pnrs"
686687
],
687688
"ignorePaths": [
688689
"src/languages/de.ts",
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
---
2+
layout: product
3+
title: Scan Receipt
4+
---
5+
6+
# Scan Receipt
7+
8+
SmartScan automatically extracts expense details from receipt images.
9+
10+
## How to Scan
11+
12+
1. Click the **+** button and select **Create expense**
13+
2. Choose **Scan**
14+
3. Upload an image or take a photo of your receipt
15+
4. SmartScan extracts merchant, date, amount, and currency
16+
5. Choose your workspace and add any required details
17+
6. Click **Create expense**
18+
19+
## What SmartScan Detects
20+
21+
- **Amount** and currency
22+
- **Merchant** name and location
23+
- **Date** of purchase
24+
- **Tax** information (when visible)
25+
- **Category** suggestions based on merchant type
26+
27+
## Supported Receipt Types
28+
29+
- **Photos** - Take with your device camera
30+
- **Email receipts** - Forward to receipts@expensify.com
31+
- **PDF receipts** - Upload from your device
32+
- **Screenshots** - From apps or websites
33+
34+
## Tips for Best Results
35+
36+
- Ensure receipt text is clear and readable
37+
- Include the full receipt in the image
38+
- Good lighting improves accuracy
39+
- Straight angles work better than tilted photos
40+
41+
## After Scanning
42+
43+
- Review extracted details for accuracy
44+
- Add description, category, or tags as needed
45+
- SmartScan learns from your corrections
46+
47+
## Related Links
48+
49+
- [Create an Expense](https://help.expensify.com/articles/new-expensify/reports-and-expenses/Create-an-Expense)
50+
- [Free Features in Expensify](https://help.expensify.com/articles/new-expensify/getting-started/Free-Features-in-Expensify)
Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
---
2+
layout: product
3+
title: Accounting Integrations
4+
---
5+
6+
# Accounting Integrations
7+
8+
Connect your workspace to accounting software to sync expenses and streamline financial management.
9+
10+
## Supported Integrations
11+
12+
**QuickBooks Online**
13+
- Real-time expense sync
14+
- Category and vendor mapping
15+
- Tax rate synchronization
16+
17+
**QuickBooks Desktop**
18+
- File-based import/export
19+
- Chart of accounts import
20+
- Custom field mapping
21+
22+
**Xero**
23+
- Automatic report sync
24+
- Tracking category import
25+
- Tax rate management
26+
27+
**NetSuite**
28+
- Advanced multi-entity support
29+
- Custom dimension mapping
30+
- Automated bill payments
31+
32+
**Sage Intacct**
33+
- Department/class tracking
34+
- Multi-currency support
35+
- Advanced approval workflows
36+
37+
## Getting Started
38+
39+
1. Go to **Workspaces > [Workspace] > More Features**
40+
2. Enable **Accounting**
41+
3. Click **Accounting** in the left menu
42+
4. Choose your integration and click **Set up**
43+
5. Follow the connection prompts
44+
45+
## What Gets Synced
46+
47+
**From your accounting system:**
48+
- Chart of accounts (as categories)
49+
- Classes, departments, locations (as tags)
50+
- Tax rates and customers
51+
- Vendors and bill payment accounts
52+
53+
**To your accounting system:**
54+
- Approved expense reports
55+
- Company card transactions
56+
- Vendor bills and journal entries
57+
- Payment records and reconciliation data
58+
59+
## Related Links
60+
61+
- [Connect to QuickBooks Online](https://help.expensify.com/articles/new-expensify/connections/quickbooks-online/Connect-to-QuickBooks-Online)
62+
- [Connect to Xero](https://help.expensify.com/articles/new-expensify/connections/xero/Connect-to-Xero)
63+
- [Connect to NetSuite](https://help.expensify.com/articles/new-expensify/connections/netsuite/Connect-To-NetSuite)

0 commit comments

Comments
 (0)