Skip to content

Commit 72d99e7

Browse files
committed
Merge branch 'main' of github.com:Expensify/App into revert-65543-vit-revert-63706
2 parents dc28a52 + 56b3b68 commit 72d99e7

175 files changed

Lines changed: 3449 additions & 1492 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

__mocks__/reportData/personalDetails.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import type {PersonalDetailsList} from '@src/types/onyx';
22

33
const usersIDs = [15593135, 51760358, 26502375] as const;
44

5-
const personalDetails: PersonalDetailsList = {
5+
const personalDetails = {
66
[usersIDs[0]]: {
77
accountID: usersIDs[0],
88
avatar: '@assets/images/avatars/user/default-avatar_1.svg',
@@ -63,6 +63,6 @@ const personalDetails: PersonalDetailsList = {
6363
phoneNumber: '33333333',
6464
validated: true,
6565
},
66-
};
66+
} satisfies PersonalDetailsList;
6767

6868
export default personalDetails;

android/app/build.gradle

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ apply from: project(':react-native-config').projectDir.getPath() + "/dotenv.grad
1313
/* Fullstory settings */
1414
fullstory {
1515
org 'o-1WN56P-na1'
16-
enabledVariants 'production'
16+
enabledVariants 'all'
1717
logcatLevel 'debug'
1818
recordOnStart false
1919
}
@@ -114,8 +114,8 @@ android {
114114
minSdkVersion rootProject.ext.minSdkVersion
115115
targetSdkVersion rootProject.ext.targetSdkVersion
116116
multiDexEnabled rootProject.ext.multiDexEnabled
117-
versionCode 1009017701
118-
versionName "9.1.77-1"
117+
versionCode 1009017803
118+
versionName "9.1.78-3"
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"

android/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ buildscript {
3232
classpath("com.google.firebase:firebase-crashlytics-gradle:2.7.1")
3333
classpath("com.google.firebase:perf-plugin:1.4.1")
3434
// Fullstory integration
35-
classpath ("com.fullstory:gradle-plugin-local:1.52.0")
35+
classpath ("com.fullstory:gradle-plugin-local:1.61.0")
3636

3737
// NOTE: Do not place your application dependencies here; they belong
3838
// in the individual module build.gradle files

assets/images/treasure-chest.svg

Lines changed: 13 additions & 0 deletions
Loading

contributingGuides/NAVIGATION.md

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ Navigation.navigate(ROUTES.HOME);
6565
// Navigation with parameters
6666
Navigation.navigate(
6767
ROUTES.SEARCH_ROOT.getRoute({
68-
query: 'type:expense status:all search',
68+
query: 'type:expense search',
6969
// additional parameters...
7070
}),
7171
);
@@ -654,7 +654,7 @@ function useCustomRootStackNavigatorState({state}: CustomStateHookProps) {
654654
}
655655
```
656656

657-
To optimize the number of routes rendered in `RootStackNavigator` we limit the number of `FullScreenNavigators` rendered to 2 (we need to render the previous fullscreen too for the transition animations to work well).
657+
To optimize the number of routes rendered in `RootStackNavigator` we limit the number of `FullScreenNavigators` rendered to 2 (we need to render the previous fullscreen too for the transition animations to work well). There's an exception for `SearchFullscreenNavigator` where we render only last route when possible due to performance implications. The idea stays the same.
658658

659659
- `src/libs/Navigation/AppNavigator/createSearchFullscreenNavigator/index.tsx`
660660

@@ -664,10 +664,9 @@ function useCustomEffects(props: CustomEffectsHookProps) {
664664
usePreserveNavigatorState(props.state, props.parentRoute);
665665
}
666666
667-
// This is a custom state hook that is used to render the last two routes in the stack.
668-
// We do this to improve the performance of the search results screen.
669-
function useCustomState({state}: CustomStateHookProps) {
670-
const routesToRender = [...state.routes.slice(-2)];
667+
// For web we only render last route in SearchFullscreenNavigator. Other navigators are keep last two routes mounted. The idea stays the same.
668+
export default function useCustomState({state}: CustomStateHookProps) {
669+
const routesToRender = state.routes.slice(-1);
671670
return {...state, routes: routesToRender, index: routesToRender.length - 1};
672671
}
673672
```

cspell.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,7 @@
9898
"Charleson",
9999
"Checkmark",
100100
"checkmarked",
101+
"chien",
101102
"Chronos",
102103
"citi",
103104
"clawback",
@@ -136,6 +137,7 @@
136137
"deeplinks",
137138
"delegators",
138139
"delish",
140+
"describedby",
139141
"Deutsch",
140142
"devportal",
141143
"DFOLLY",
@@ -295,6 +297,7 @@
295297
"killall",
296298
"Kowalski",
297299
"Krasoń",
300+
"labelledby",
298301
"Lagertha",
299302
"laggy",
300303
"lastiPhoneLogin",

docs/articles/new-expensify/expensify-card/View-and-Reconcile-Expensify-Card-Expenses.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ You can export transactions from a specific date range to help with monthly reco
3232
4. Apply the following filters:
3333
- **Card**: select the applicable card feed.
3434
- **Posted date**: Set the appropriate date range (e.g., `posted<2025-02-28 AND posted>2025-02-01`)
35-
5. Alternatively, you can enter this directly in the search bar (e.g., `type:expense status:all feed:"all in cards" posted<2025-02-28 posted>2025-02-01`)
35+
5. Alternatively, you can enter this directly in the search bar (e.g., `type:expense feed:"all in cards" posted<2025-02-28 posted>2025-02-01`)
3636
6. Once filtered, click the **Export** icon in the top-right corner to download the report as a spreadsheet.
3737

3838
---

docs/articles/new-expensify/reports-and-expenses/Create-an-Expense.md

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,33 @@ This feature helps prevent policy violations and ensures accurate expense tracki
8787

8888
---
8989

90+
# Split Personal Expenses
91+
92+
To split an expense, you’ll need to start a chat with each person you’re requesting money from. Once the chat is started, you can request their share of the bill.
93+
94+
## Start a Chat Before Splitting
95+
96+
1. Click the green Create button in the left sidebar.
97+
2. Select Start Chat.
98+
3. Search for the person by name, email, or phone number.
99+
4. Send them a message to begin the conversation.
100+
5. Once a chat is started, follow the steps below to split the expense.
101+
102+
## Split the Expense
103+
104+
1. In the chat thread, click the + icon next to the message box.
105+
2. Select Split Expense.
106+
3. Upload a photo of your receipt, or manually enter the total bill amount.
107+
4. Click Next.
108+
- Select the people you want to split the cost with.
109+
5. You can enter names, emails, or phone numbers.
110+
6. Click Next.
111+
7. (Optional) Add a reason for the request in the Description field.
112+
8. (Optional) If entering the amount manually, include the merchant and date of purchase.
113+
9. Click Split.
114+
115+
Each person will receive a notification via email or text with the request details. You can chat about the expense in Expensify Chat, and payments can be received via your Expensify Wallet or through other methods.
116+
90117
# Next Steps for Workspace Expenses
91118

92119
- Expenses are automatically added to a report.

docs/articles/new-expensify/reports-and-expenses/Split-Expenses.md renamed to docs/articles/new-expensify/reports-and-expenses/Split-Personal-Expenses.md

File renamed without changes.

0 commit comments

Comments
 (0)