From 7617d3410c80934892e29fce95fd670ddfb1d122 Mon Sep 17 00:00:00 2001 From: Khushal Agarwal Date: Thu, 23 Oct 2025 11:01:24 +0530 Subject: [PATCH 1/2] fix: respect max file size config for pick image API --- package/expo-package/src/optionalDependencies/pickImage.ts | 4 +++- .../native-package/src/optionalDependencies/pickImage.ts | 4 +++- .../contexts/messageInputContext/MessageInputContext.tsx | 2 +- package/src/native.ts | 6 +++++- 4 files changed, 12 insertions(+), 4 deletions(-) diff --git a/package/expo-package/src/optionalDependencies/pickImage.ts b/package/expo-package/src/optionalDependencies/pickImage.ts index 25ef02f531..280710b4c2 100644 --- a/package/expo-package/src/optionalDependencies/pickImage.ts +++ b/package/expo-package/src/optionalDependencies/pickImage.ts @@ -1,4 +1,5 @@ import { Platform } from 'react-native'; +import { PickImageOptions } from 'stream-chat-react-native-core'; let ImagePicker; try { @@ -14,7 +15,7 @@ if (!ImagePicker) { } export const pickImage = ImagePicker - ? async () => { + ? async ({ maxNumberOfFiles }: PickImageOptions = {}) => { try { let permissionGranted = true; if (Platform.OS === 'ios') { @@ -35,6 +36,7 @@ export const pickImage = ImagePicker allowsMultipleSelection: true, mediaTypes: ['images', 'videos'], preferredAssetRepresentationMode: 'current', + selectionLimit: maxNumberOfFiles, }); const canceled = result.canceled; diff --git a/package/native-package/src/optionalDependencies/pickImage.ts b/package/native-package/src/optionalDependencies/pickImage.ts index 1d04e68753..dc7966dd99 100644 --- a/package/native-package/src/optionalDependencies/pickImage.ts +++ b/package/native-package/src/optionalDependencies/pickImage.ts @@ -1,4 +1,5 @@ import { Platform } from 'react-native'; +import { PickImageOptions } from 'stream-chat-react-native-core'; let ImagePicker; try { @@ -8,11 +9,12 @@ try { } export const pickImage = ImagePicker - ? async () => { + ? async ({ maxNumberOfFiles }: PickImageOptions = {}) => { try { const result = await ImagePicker.launchImageLibrary({ assetRepresentationMode: 'current', mediaType: 'mixed', + selectionLimit: maxNumberOfFiles, }); const canceled = result.didCancel; const errorCode = result.errorCode; diff --git a/package/src/contexts/messageInputContext/MessageInputContext.tsx b/package/src/contexts/messageInputContext/MessageInputContext.tsx index c84726f9c3..64414cfa8e 100644 --- a/package/src/contexts/messageInputContext/MessageInputContext.tsx +++ b/package/src/contexts/messageInputContext/MessageInputContext.tsx @@ -495,7 +495,7 @@ export const MessageInputProvider = ({ return; } - const result = await NativeHandlers.pickImage(); + const result = await NativeHandlers.pickImage({ maxNumberOfFiles: availableUploadSlots }); if (result.askToOpenSettings) { Alert.alert( t('Allow access to your Gallery'), diff --git a/package/src/native.ts b/package/src/native.ts index 7debba4ecc..f20d52b09b 100644 --- a/package/src/native.ts +++ b/package/src/native.ts @@ -50,7 +50,11 @@ type PickImageAssetType = { cancelled?: boolean; }; -type PickImage = () => Promise | never; +export type PickImageOptions = { + maxNumberOfFiles?: number; +}; + +type PickImage = (options?: PickImageOptions) => Promise | never; type SaveFileOptions = { fileName: string; From b62813d5fb0c383f0f16b2649cc350444f3f16b0 Mon Sep 17 00:00:00 2001 From: Khushal Agarwal Date: Thu, 23 Oct 2025 11:11:34 +0530 Subject: [PATCH 2/2] chore: update ts app yarn lock and podlock --- examples/TypeScriptMessaging/ios/Podfile.lock | 2 +- examples/TypeScriptMessaging/yarn.lock | 19 ++++++++++++++----- 2 files changed, 15 insertions(+), 6 deletions(-) diff --git a/examples/TypeScriptMessaging/ios/Podfile.lock b/examples/TypeScriptMessaging/ios/Podfile.lock index 622d093c3b..47c9e973e8 100644 --- a/examples/TypeScriptMessaging/ios/Podfile.lock +++ b/examples/TypeScriptMessaging/ios/Podfile.lock @@ -3248,4 +3248,4 @@ SPEC CHECKSUMS: PODFILE CHECKSUM: 6b7a4b74915b42bfe4ffddaf67cbf5e7a2bfeab3 -COCOAPODS: 1.16.2 +COCOAPODS: 1.14.3 diff --git a/examples/TypeScriptMessaging/yarn.lock b/examples/TypeScriptMessaging/yarn.lock index 46cd8ec3b9..5ae0cf23fe 100644 --- a/examples/TypeScriptMessaging/yarn.lock +++ b/examples/TypeScriptMessaging/yarn.lock @@ -2734,6 +2734,15 @@ available-typed-arrays@^1.0.7: dependencies: possible-typed-array-names "^1.0.0" +axios@^1.12.2: + version "1.12.2" + resolved "https://registry.yarnpkg.com/axios/-/axios-1.12.2.tgz#6c307390136cf7a2278d09cec63b136dfc6e6da7" + integrity sha512-vMJzPewAlRyOgxV2dU0Cuz2O8zzzx9VYtbJOaBgXFeLc4IV/Eg50n4LowmehOOR61S8ZMpc2K5Sa7g6A4jfkUw== + dependencies: + follow-redirects "^1.15.6" + form-data "^4.0.4" + proxy-from-env "^1.1.0" + axios@^1.6.0: version "1.7.9" resolved "https://registry.yarnpkg.com/axios/-/axios-1.7.9.tgz#d7d071380c132a24accda1b2cfc1535b79ec650a" @@ -7319,14 +7328,14 @@ stream-chat-react-native-core@8.1.0: version "0.0.0" uid "" -stream-chat@^9.17.0: - version "9.17.0" - resolved "https://registry.yarnpkg.com/stream-chat/-/stream-chat-9.17.0.tgz#540cf1ea03b08a394d6140696aae8528e9ba9ce2" - integrity sha512-ys6K73wIVWs5+qsfPJ9wumEUtgbMXYVbH1dhmAZ1oYtQ01dY/avsvt25PYDakVjKeyrnT+y8T/xEzfeF/WDJsg== +stream-chat@^9.23.0: + version "9.24.0" + resolved "https://registry.yarnpkg.com/stream-chat/-/stream-chat-9.24.0.tgz#e6af5d4b0eb396e24e0ab7f852719581c39f18bc" + integrity sha512-zLtguYRqxeEc/Cjw8Zp00u/wTrqFg4gFPKdj3mvl/Jq1Pt95mY9nMc38KW0GOu/2quIAAar0NNMq8fsXl4jupQ== dependencies: "@types/jsonwebtoken" "^9.0.8" "@types/ws" "^8.5.14" - axios "^1.6.0" + axios "^1.12.2" base64-js "^1.5.1" form-data "^4.0.4" isomorphic-ws "^5.0.0"