Skip to content

Commit 4f345e9

Browse files
committed
Merge branch 'refs/heads/V7' into feat/offline-support-v2
# Conflicts: # package/expo-package/yarn.lock # package/native-package/yarn.lock # package/package.json # package/src/components/Channel/Channel.tsx # package/yarn.lock
2 parents 4503fd4 + 9375fa4 commit 4f345e9

File tree

72 files changed

+2161
-2283
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

72 files changed

+2161
-2283
lines changed
Lines changed: 22 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,41 +1,41 @@
11
import {
2-
DefaultAttachmentType,
3-
DefaultMessageType,
4-
DefaultChannelType,
5-
DefaultCommandType,
6-
DefaultEventType,
7-
DefaultMemberType,
8-
DefaultPollOptionType,
9-
DefaultPollType,
10-
DefaultReactionType,
11-
DefaultThreadType,
12-
DefaultUserType,
2+
DefaultAttachmentData,
3+
DefaultChannelData,
4+
DefaultCommandData,
5+
DefaultEventData,
6+
DefaultMemberData,
7+
DefaultMessageData,
8+
DefaultPollData,
9+
DefaultPollOptionData,
10+
DefaultReactionData,
11+
DefaultThreadData,
12+
DefaultUserData,
1313
} from 'stream-chat-expo';
1414

1515
declare module 'stream-chat' {
1616
/* eslint-disable @typescript-eslint/no-empty-object-type */
1717

18-
interface CustomAttachmentData extends DefaultAttachmentType {}
18+
interface CustomAttachmentData extends DefaultAttachmentData {}
1919

20-
interface CustomChannelData extends DefaultChannelType {}
20+
interface CustomChannelData extends DefaultChannelData {}
2121

22-
interface CustomCommandData extends DefaultCommandType {}
22+
interface CustomCommandData extends DefaultCommandData {}
2323

24-
interface CustomEventData extends DefaultEventType {}
24+
interface CustomEventData extends DefaultEventData {}
2525

26-
interface CustomMemberData extends DefaultMemberType {}
26+
interface CustomMemberData extends DefaultMemberData {}
2727

28-
interface CustomUserData extends DefaultUserType {}
28+
interface CustomUserData extends DefaultUserData {}
2929

30-
interface CustomMessageData extends DefaultMessageType {}
30+
interface CustomMessageData extends DefaultMessageData {}
3131

32-
interface CustomPollOptionData extends DefaultPollOptionType {}
32+
interface CustomPollOptionData extends DefaultPollOptionData {}
3333

34-
interface CustomPollData extends DefaultPollType {}
34+
interface CustomPollData extends DefaultPollData {}
3535

36-
interface CustomReactionData extends DefaultReactionType {}
36+
interface CustomReactionData extends DefaultReactionData {}
3737

38-
interface CustomThreadData extends DefaultThreadType {}
38+
interface CustomThreadData extends DefaultThreadData {}
3939

4040
/* eslint-enable @typescript-eslint/no-empty-object-type */
4141
}

examples/ExpoMessaging/package.json

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@
2323
"expo-image-manipulator": "~13.0.6",
2424
"expo-image-picker": "~16.0.6",
2525
"expo-linking": "~7.0.5",
26-
"expo-media-library": "~17.0.6",
2726
"expo-router": "~4.0.17",
2827
"expo-sharing": "~13.0.1",
2928
"expo-splash-screen": "~0.29.22",

examples/ExpoMessaging/yarn.lock

Lines changed: 14 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -4301,11 +4301,6 @@ expo-linking@~7.0.5:
43014301
expo-constants "~17.0.5"
43024302
invariant "^2.2.4"
43034303

4304-
expo-media-library@~17.0.6:
4305-
version "17.0.6"
4306-
resolved "https://registry.yarnpkg.com/expo-media-library/-/expo-media-library-17.0.6.tgz#355f5f5abf0b5b35cdf009f18567cbba12d8dc82"
4307-
integrity sha512-LUnfrddmee1xLOkyG2NN1l9xQbtvMX3fbM1brEGHg0SKSndvjod3FQdhTzZEYAariqW2RSxQR8v1IsheIoLQXg==
4308-
43094304
43104305
version "2.0.8"
43114306
resolved "https://registry.yarnpkg.com/expo-modules-autolinking/-/expo-modules-autolinking-2.0.8.tgz#b00c10ebb589ce2220548bbaee4865db1cf1f1f7"
@@ -5540,6 +5535,11 @@ linkifyjs@^4.1.1:
55405535
resolved "https://registry.yarnpkg.com/linkifyjs/-/linkifyjs-4.1.1.tgz#73d427e3bbaaf4ca8e71c589ad4ffda11a9a5fde"
55415536
integrity sha512-zFN/CTVmbcVef+WaDXT63dNzzkfRBKT1j464NJQkV7iSgJU0sLBus9W0HBwnXK13/hf168pbrx/V/bjEHOXNHA==
55425537

5538+
linkifyjs@^4.2.0:
5539+
version "4.2.0"
5540+
resolved "https://registry.yarnpkg.com/linkifyjs/-/linkifyjs-4.2.0.tgz#9dd30222b9cbabec9c950e725ec00031c7fa3f08"
5541+
integrity sha512-pCj3PrQyATaoTYKHrgWRF3SJwsm61udVh+vuls/Rl6SptiDhgE7ziUIudAedRY9QEfynmM7/RmLEfPUyw1HPCw==
5542+
55435543
locate-path@^3.0.0:
55445544
version "3.0.0"
55455545
resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e"
@@ -5943,6 +5943,11 @@ [email protected]:
59435943
resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1"
59445944
integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==
59455945

5946+
mime@^4.0.7:
5947+
version "4.0.7"
5948+
resolved "https://registry.yarnpkg.com/mime/-/mime-4.0.7.tgz#0b7a98b08c63bd3c10251e797d67840c9bde9f13"
5949+
integrity sha512-2OfDPL+e03E0LrXaGYOtTFIYhiuzep94NSsuhrNULq+stylcJedcHdzHtz0atMUuGwJfFYs0YL5xeC/Ca2x0eQ==
5950+
59465951
mimic-fn@^1.0.0:
59475952
version "1.2.0"
59485953
resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022"
@@ -7402,10 +7407,9 @@ [email protected], stream-buffers@~2.2.0:
74027407
version "0.0.0"
74037408
uid ""
74047409

7405-
7406-
version "9.0.0-rc.8"
7407-
resolved "https://registry.yarnpkg.com/stream-chat/-/stream-chat-9.0.0-rc.8.tgz#e188e481841493584691ae491916843d0ef5f9cd"
7408-
integrity sha512-P+Ksnu1cQQfL1t2/QTJ5rr/z2Jehvd2ap41xZgtfbJssHSD7ahe14TCF/1L7q4jjaNlZcTtLcKXCWbbOdKjDcg==
7410+
"stream-chat@https://github.com/GetStream/stream-chat-js.git#9bc79358e9d0a23e0ff7e2a056711289e5bdf917":
7411+
version "0.0.0-development"
7412+
resolved "https://github.com/GetStream/stream-chat-js.git#9bc79358e9d0a23e0ff7e2a056711289e5bdf917"
74097413
dependencies:
74107414
"@types/jsonwebtoken" "^9.0.8"
74117415
"@types/ws" "^8.5.14"
@@ -7414,6 +7418,7 @@ [email protected]:
74147418
form-data "^4.0.0"
74157419
isomorphic-ws "^5.0.0"
74167420
jsonwebtoken "^9.0.2"
7421+
linkifyjs "^4.2.0"
74177422
ws "^8.18.1"
74187423

74197424
stream-slice@^0.1.2:

examples/SampleApp/CHANGELOG.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,12 @@
11
# Change Log
22

3+
### [2.5.2](https://github.com/GetStream/stream-chat-react-native/compare/[email protected]@v2.5.2) (2025-04-22)
4+
5+
6+
### Performance Improvements
7+
8+
* message list performance ([#3060](https://github.com/GetStream/stream-chat-react-native/issues/3060)) ([8b2d7e3](https://github.com/GetStream/stream-chat-react-native/commit/8b2d7e31e57acd497726876b56b4350065bb3c2d))
9+
310
### [2.5.1](https://github.com/GetStream/stream-chat-react-native/compare/[email protected]@v2.5.1) (2025-03-13)
411

512

examples/SampleApp/android/app/src/main/AndroidManifest.xml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22
<uses-permission android:name="android.permission.INTERNET" />
33
<uses-permission android:name="android.permission.CAMERA" />
44
<uses-permission android:name="android.permission.RECORD_AUDIO" />
5+
<uses-permission android:name="android.permission.READ_MEDIA_IMAGES" />
6+
<uses-permission android:name="android.permission.READ_MEDIA_VIDEO" />
57

68
<queries>
79
<intent>

examples/SampleApp/ios/Podfile.lock

Lines changed: 31 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1433,7 +1433,7 @@ PODS:
14331433
- ReactCommon/turbomodule/bridging
14341434
- ReactCommon/turbomodule/core
14351435
- Yoga
1436-
- react-native-cameraroll (7.9.0):
1436+
- react-native-cameraroll (7.10.0):
14371437
- DoubleConversion
14381438
- glog
14391439
- hermes-engine
@@ -1475,6 +1475,27 @@ PODS:
14751475
- ReactCommon/turbomodule/bridging
14761476
- ReactCommon/turbomodule/core
14771477
- Yoga
1478+
- react-native-image-picker (8.2.0):
1479+
- DoubleConversion
1480+
- glog
1481+
- hermes-engine
1482+
- RCT-Folly (= 2024.11.18.00)
1483+
- RCTRequired
1484+
- RCTTypeSafety
1485+
- React-Core
1486+
- React-debug
1487+
- React-Fabric
1488+
- React-featureflags
1489+
- React-graphics
1490+
- React-ImageManager
1491+
- React-NativeModulesApple
1492+
- React-RCTFabric
1493+
- React-rendererdebug
1494+
- React-utils
1495+
- ReactCodegen
1496+
- ReactCommon/turbomodule/bridging
1497+
- ReactCommon/turbomodule/core
1498+
- Yoga
14781499
- react-native-netinfo (11.4.1):
14791500
- React-Core
14801501
- react-native-safe-area-context (5.2.0):
@@ -2213,7 +2234,7 @@ PODS:
22132234
- libwebp (~> 1.0)
22142235
- SDWebImage/Core (~> 5.10)
22152236
- SocketRocket (0.7.1)
2216-
- stream-chat-react-native (6.6.7):
2237+
- stream-chat-react-native (6.6.8):
22172238
- DoubleConversion
22182239
- glog
22192240
- hermes-engine
@@ -2284,6 +2305,7 @@ DEPENDENCIES:
22842305
- react-native-blob-util (from `../node_modules/react-native-blob-util`)
22852306
- "react-native-cameraroll (from `../node_modules/@react-native-camera-roll/camera-roll`)"
22862307
- "react-native-document-picker (from `../node_modules/@react-native-documents/picker`)"
2308+
- react-native-image-picker (from `../node_modules/react-native-image-picker`)
22872309
- "react-native-netinfo (from `../node_modules/@react-native-community/netinfo`)"
22882310
- react-native-safe-area-context (from `../node_modules/react-native-safe-area-context`)
22892311
- react-native-video (from `../node_modules/react-native-video`)
@@ -2439,6 +2461,8 @@ EXTERNAL SOURCES:
24392461
:path: "../node_modules/@react-native-camera-roll/camera-roll"
24402462
react-native-document-picker:
24412463
:path: "../node_modules/@react-native-documents/picker"
2464+
react-native-image-picker:
2465+
:path: "../node_modules/react-native-image-picker"
24422466
react-native-netinfo:
24432467
:path: "../node_modules/@react-native-community/netinfo"
24442468
react-native-safe-area-context:
@@ -2557,7 +2581,7 @@ SPEC CHECKSUMS:
25572581
op-sqlite: c33561ea312a2ae38aae032fd3a42635dc6b57e8
25582582
PromisesObjC: f5707f49cb48b9636751c5b2e7d227e43fba9f47
25592583
PromisesSwift: 9d77319bbe72ebf6d872900551f7eeba9bce2851
2560-
RCT-Folly: 36fe2295e44b10d831836cc0d1daec5f8abcf809
2584+
RCT-Folly: e78785aa9ba2ed998ea4151e314036f6c49e6d82
25612585
RCTDeprecation: b2eecf2d60216df56bc5e6be5f063826d3c1ee35
25622586
RCTRequired: 78522de7dc73b81f3ed7890d145fa341f5bb32ea
25632587
RCTTypeSafety: c135dd2bf50402d87fd12884cbad5d5e64850edd
@@ -2589,8 +2613,9 @@ SPEC CHECKSUMS:
25892613
React-Mapbuffer: 0df2a235bd0182f5cbed6c5f095e66deca12e335
25902614
React-microtasksnativemodule: b31e56a980634f383221bfefd5111d04c14c110b
25912615
react-native-blob-util: 875bbeee07e4ada135e4edf9fc7b22acf8d9721d
2592-
react-native-cameraroll: 36dc62b41c7943a79ac2f7cf4d3da10d4138513f
2616+
react-native-cameraroll: cdc91c4c953d1a18aa3ce88b5a25698025c8c4d2
25932617
react-native-document-picker: 19be73c0423e4bc886cef74ec282eff750698013
2618+
react-native-image-picker: 1c620a65f900a47d6d12ec94874c6a1820ebea7d
25942619
react-native-netinfo: f0a9899081c185db1de5bb2fdc1c88c202a059ac
25952620
react-native-safe-area-context: 0b43456abcaaa3c8323bbfafe9c5f0f9511219d2
25962621
react-native-video: a225b4d4d3286f3253dc7b00a62e7c8e59d04d51
@@ -2637,9 +2662,9 @@ SPEC CHECKSUMS:
26372662
SDWebImage: a7f831e1a65eb5e285e3fb046a23fcfbf08e696d
26382663
SDWebImageWebPCoder: 908b83b6adda48effe7667cd2b7f78c897e5111d
26392664
SocketRocket: d4aabe649be1e368d1318fdf28a022d714d65748
2640-
stream-chat-react-native: 6b89c43ee042e7a6f00e6eaddf3228b712884846
2665+
stream-chat-react-native: aa6626ef9dd68e28b1239c9f2ee2fc7ce1fd3c3f
26412666
Yoga: be02ca501b03c79d7027a6bbbd0a8db985034f11
26422667

26432668
PODFILE CHECKSUM: 4f662370295f8f9cee909f1a4c59a614999a209d
26442669

2645-
COCOAPODS: 1.16.2
2670+
COCOAPODS: 1.14.3

examples/SampleApp/package.json

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "sampleapp",
3-
"version": "2.5.1",
3+
"version": "2.5.2",
44
"private": true,
55
"repository": {
66
"type": "git",
@@ -26,7 +26,7 @@
2626
"@notifee/react-native": "^9.1.8",
2727
"@op-engineering/op-sqlite": "^11.4.7",
2828
"@react-native-async-storage/async-storage": "^2.1.1",
29-
"@react-native-camera-roll/camera-roll": "^7.9.0",
29+
"@react-native-camera-roll/camera-roll": "^7.10.0",
3030
"@react-native-community/netinfo": "^11.4.1",
3131
"@react-native-documents/picker": "^10.1.1",
3232
"@react-native-firebase/app": "21.11.0",
@@ -42,6 +42,7 @@
4242
"react-native-fast-image": "^8.6.3",
4343
"react-native-gesture-handler": "^2.24.0",
4444
"react-native-haptic-feedback": "^2.3.3",
45+
"react-native-image-picker": "^8.2.0",
4546
"react-native-reanimated": "^3.17.1",
4647
"react-native-safe-area-context": "^5.2.0",
4748
"react-native-screens": "^4.9.1",
Lines changed: 22 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,45 +1,45 @@
11
import {
2-
DefaultAttachmentType,
3-
DefaultMessageType,
4-
DefaultChannelType,
5-
DefaultCommandType,
6-
DefaultEventType,
7-
DefaultMemberType,
8-
DefaultPollOptionType,
9-
DefaultPollType,
10-
DefaultReactionType,
11-
DefaultThreadType,
12-
DefaultUserType,
2+
DefaultAttachmentData,
3+
DefaultChannelData,
4+
DefaultCommandData,
5+
DefaultEventData,
6+
DefaultMemberData,
7+
DefaultMessageData,
8+
DefaultPollData,
9+
DefaultPollOptionData,
10+
DefaultReactionData,
11+
DefaultThreadData,
12+
DefaultUserData,
1313
} from 'stream-chat-react-native';
1414

1515
declare module 'stream-chat' {
1616
/* eslint-disable @typescript-eslint/no-empty-object-type */
1717

18-
interface CustomAttachmentData extends DefaultAttachmentType {
18+
interface CustomAttachmentData extends DefaultAttachmentData {
1919
id?: string;
2020
}
2121

22-
interface CustomChannelData extends DefaultChannelType {}
22+
interface CustomChannelData extends DefaultChannelData {}
2323

24-
interface CustomCommandData extends DefaultCommandType {}
24+
interface CustomCommandData extends DefaultCommandData {}
2525

26-
interface CustomEventData extends DefaultEventType {}
26+
interface CustomEventData extends DefaultEventData {}
2727

28-
interface CustomMemberData extends DefaultMemberType {}
28+
interface CustomMemberData extends DefaultMemberData {}
2929

30-
interface CustomUserData extends DefaultUserType {}
30+
interface CustomUserData extends DefaultUserData {}
3131

32-
interface CustomMessageData extends DefaultMessageType {
32+
interface CustomMessageData extends DefaultMessageData {
3333
ai_generated?: boolean;
3434
}
3535

36-
interface CustomPollOptionData extends DefaultPollOptionType {}
36+
interface CustomPollOptionData extends DefaultPollOptionData {}
3737

38-
interface CustomPollData extends DefaultPollType {}
38+
interface CustomPollData extends DefaultPollData {}
3939

40-
interface CustomReactionData extends DefaultReactionType {}
40+
interface CustomReactionData extends DefaultReactionData {}
4141

42-
interface CustomThreadData extends DefaultThreadType {}
42+
interface CustomThreadData extends DefaultThreadData {}
4343

4444
/* eslint-enable @typescript-eslint/no-empty-object-type */
4545
}

examples/SampleApp/src/screens/ChannelScreen.tsx

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import React, { useEffect, useState } from 'react';
1+
import React, { useCallback, useEffect, useState } from 'react';
22
import type { Channel as StreamChatChannel } from 'stream-chat';
33
import { RouteProp, useFocusEffect, useNavigation } from '@react-navigation/native';
44
import {
@@ -142,6 +142,14 @@ export const ChannelScreen: React.FC<ChannelScreenProps> = ({
142142
setSelectedThread(undefined);
143143
});
144144

145+
const onThreadSelect = useCallback((thread) => {
146+
setSelectedThread(thread);
147+
navigation.navigate('ThreadScreen', {
148+
channel,
149+
thread,
150+
});
151+
}, [channel, navigation]);
152+
145153
if (!channel || !chatClient) {
146154
return null;
147155
}
@@ -161,13 +169,7 @@ export const ChannelScreen: React.FC<ChannelScreenProps> = ({
161169
>
162170
<ChannelHeader channel={channel} />
163171
<MessageList
164-
onThreadSelect={(thread) => {
165-
setSelectedThread(thread);
166-
navigation.navigate('ThreadScreen', {
167-
channel,
168-
thread,
169-
});
170-
}}
172+
onThreadSelect={onThreadSelect}
171173
/>
172174
<AITypingIndicatorView channel={channel} />
173175
<MessageInput />

0 commit comments

Comments
 (0)