Skip to content

Commit 824bb27

Browse files
committed
Merge branch 'main' into fix/77699
2 parents 69ad05b + 129f730 commit 824bb27

173 files changed

Lines changed: 2209 additions & 1725 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
@@ -114,8 +114,8 @@ android {
114114
minSdkVersion rootProject.ext.minSdkVersion
115115
targetSdkVersion rootProject.ext.targetSdkVersion
116116
multiDexEnabled rootProject.ext.multiDexEnabled
117-
versionCode 1009028200
118-
versionName "9.2.82-0"
117+
versionCode 1009028400
118+
versionName "9.2.84-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"

contributingGuides/NAVIGATION.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -514,7 +514,7 @@ Considerations when removing `backTo` from a URL:
514514
```ts
515515
type ReportScreenNavigationProps =
516516
| PlatformStackScreenProps<ReportsSplitNavigatorParamList, typeof SCREENS.REPORT>
517-
| PlatformStackScreenProps<SearchReportParamList, typeof SCREENS.SEARCH.REPORT_RHP>;
517+
| PlatformStackScreenProps<RightModalNavigatorParamList, typeof SCREENS.RIGHT_MODAL.SEARCH_REPORT>;
518518
```
519519

520520
An example of a screen that is reused in several flows is `VerifyAccountPage`.
Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
# SelectionList components
2+
3+
This doc explains when and how to use the `SelectionList` and `SelectionListWithSections` components in New Expensify.
4+
5+
## Overview
6+
7+
8+
There are two main components:
9+
10+
- [**`SelectionList`**](../src/components/SelectionList/BaseSelectionList.tsx) - For displaying a single array of data (no sections)
11+
- [**`SelectionListWithSections`**](../src/components/SelectionListWithSections/BaseSelectionListWithSections.tsx) - For displaying data organized into multiple sections
12+
13+
## When to Use Each Component
14+
15+
### Use `SelectionList` when:
16+
17+
- Your data is a **single flat array** of items
18+
- You don't need to group items into sections with headers
19+
- You want a simpler, more performant solution for flat lists
20+
- Your data structure looks like: `[{item1}, {item2}, {item3}]`
21+
22+
23+
### Use `SelectionListWithSections` when:
24+
25+
- Your data is organized into **multiple sections** with headers
26+
- You need to group related items together (e.g., "Recent", "All Contacts", "Groups")
27+
- Your data structure looks like:
28+
```typescript
29+
[
30+
{ title: 'Section 1', data: [{item1}, {item2}] },
31+
{ title: 'Section 2', data: [{item3}, {item4}] }
32+
]
33+
```
34+
35+
## Basic Usage Examples
36+
37+
### Example 1: Simple SelectionList
38+
39+
```tsx
40+
<SelectionList
41+
data={options}
42+
ListItem={RadioListItem}
43+
onSelectRow={(item) => {
44+
setSelectedOption(item.keyForList);
45+
Navigation.goBack();
46+
}}
47+
shouldShowTextInput
48+
textInputOptions={{
49+
label: "Search items",
50+
value: searchText,
51+
onChangeText: setSearchText,
52+
headerMessage
53+
}}
54+
/>
55+
```
56+
57+
### Example 2: SelectionListWithSections
58+
59+
```tsx
60+
<SelectionListWithSections
61+
sections={[
62+
{ title: 'Recent', data: recentContacts },
63+
{ title: 'All Contacts', data: allContacts },
64+
]}
65+
ListItem={UserListItem}
66+
onSelectRow={handleSelectContact}
67+
shouldShowTextInput
68+
textInputLabel="Search contacts"
69+
/>
70+
```
71+
72+
## Related Components
73+
74+
- `SelectionScreen` - Wrapper component that includes screen layout (1 section)
75+
- `SelectionListWithModal` - Selection list with modal interaction (1 section)
76+

eslint.config.mjs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -125,6 +125,14 @@ const restrictedImportPaths = [
125125
name: '@src/utils/findNodeHandle',
126126
message: "Do not use 'findNodeHandle' as it is no longer supported on web.",
127127
},
128+
{
129+
name: './SelectionListWithSections',
130+
message: 'Use `SelectionList` for flat data. Only use `SelectionListWithSection` when data is actually sectioned. See contributingGuides/SELECTION_LIST.md for details',
131+
},
132+
{
133+
name: '@components/SelectionListWithSections',
134+
message: 'Use `SelectionList` for flat data. Only use `SelectionListWithSection` when data is actually sectioned. See contributingGuides/SELECTION_LIST.md for details',
135+
},
128136
];
129137

130138
const restrictedImportPatterns = [

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.2.82</string>
26+
<string>9.2.84</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.2.82.0</string>
47+
<string>9.2.84.0</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.2.82</string>
14+
<string>9.2.84</string>
1515
<key>CFBundleVersion</key>
16-
<string>9.2.82.0</string>
16+
<string>9.2.84.0</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.2.82</string>
14+
<string>9.2.84</string>
1515
<key>CFBundleVersion</key>
16-
<string>9.2.82.0</string>
16+
<string>9.2.84.0</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.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "new.expensify",
3-
"version": "9.2.82-0",
3+
"version": "9.2.84-0",
44
"author": "Expensify, Inc.",
55
"homepage": "https://new.expensify.com",
66
"description": "New Expensify is the next generation of Expensify: a reimagination of payments based atop a foundation of chat.",

0 commit comments

Comments
 (0)