Skip to content

Commit 6312435

Browse files
committed
Merge branch 'nikki-add-export-options' of github.com:Expensify/App into nikki-add-export-options
2 parents 63df310 + 4113a01 commit 6312435

258 files changed

Lines changed: 9805 additions & 5422 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 1009017105
118-
versionName "9.1.71-5"
117+
versionCode 1009017111
118+
versionName "9.1.71-11"
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",

docs/articles/new-expensify/settings/Account-Settings.md

Lines changed: 29 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
title: Account Settings
33
description: Learn how to update your profile settings, preferences, and notifications in Expensify.
4-
keywords: [Expensify profile, account preferences, notifications, language, theme, timezone, personal information]
4+
keywords: [New Expensify, profile, account preferences, notifications, language, theme, timezone, personal information]
55
---
66
<div id="new-expensify" markdown="1">
77

@@ -16,7 +16,7 @@ You can update the following profile settings:
1616
- **Profile Photo** – Upload or change your photo.
1717
- **Status** – Add a custom message and emoji to show your current status.
1818
- **Pronouns** – Display your preferred pronouns on your profile.
19-
- **Language**Change the app language to Spanish or other supported languages.
19+
- **Language**Update your account to your preferred language.
2020
- **Timezone** – Set the correct timezone for expense and report timestamps.
2121
- **Theme** – Toggle between light mode, dark mode, or follow device settings.
2222
- **Notifications** – Customize how and when you receive email and app notifications.
@@ -41,9 +41,30 @@ To update your timezone:
4141

4242
## Language
4343

44-
To change your language:
45-
1. Go to **Account > Preferences**.
46-
2. Click **Language** and choose your preferred option.
44+
Expensify supports multiple languages, making it easier for members across the globe to use the app in their preferred language.
45+
46+
**You can update your Expensify account to display in any of the following languages:**
47+
48+
- English
49+
- Español (Spanish)
50+
- Deutsch (German)
51+
- Français (French)
52+
- Italiano (Italian)
53+
- 日本語 (Japanese)
54+
- Nederlands (Dutch)
55+
- Polski (Polish)
56+
- Português (BR) (Brazilian Portuguese)
57+
- 中文 (简体) (Simplified Chinese)
58+
59+
**How to change your language setting:**
60+
61+
1. In the left-hand menu, select **Account > Preferences**.
62+
2. Tap or click on **Language**.
63+
3. Choose your preferred language from the list.
64+
4. The checkmark will confirm the selected language.
65+
5. Your account will update automatically to reflect the new language setting.
66+
67+
**Note:** Language changes affect your personal account view only. Workspace members must update their own preferences individually.
4768

4869
## Notifications
4970

@@ -99,18 +120,15 @@ To edit your display or legal name:
99120
Your photo helps teammates identify you easily in chats, reports, and notifications.
100121

101122
## Will changing my language affect reports?
102-
No. It only changes the language of your user interfacenot the content of your reports.
123+
No. It only changes the language of your user interface, not the content of your reports.
103124

104125
## Can I disable all Expensify notifications?
105-
Yes. Go to **Account > Preferences** and toggle off both update and sound notifications.
126+
Yes. From the left-hand menu, go to **Account > Preferences** and toggle off both update and sound notifications.
106127

107128
## Will theme preferences sync across devices?
108-
Yes. Your chosen theme applies across web, mobile, and desktop versions of Expensify.
129+
Yes! Your chosen theme applies across web, mobile, and desktop versions of Expensify.
109130

110131
## Can I set a permanent status message?
111132
Yes. After entering your status, choose **Never** under “Clear After” to keep it active indefinitely.
112133

113-
## Why should I add my legal name and address?
114-
These details are used for things like booking travel or receiving payments and help verify your identity when needed.
115-
116134
</div>
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)

0 commit comments

Comments
 (0)