diff --git a/examples/ExpoMessaging/yarn.lock b/examples/ExpoMessaging/yarn.lock index 35994b48ca..d281a36054 100644 --- a/examples/ExpoMessaging/yarn.lock +++ b/examples/ExpoMessaging/yarn.lock @@ -7412,10 +7412,10 @@ stream-buffers@2.2.x, stream-buffers@~2.2.0: version "0.0.0" uid "" -stream-chat@^9.5.1: - version "9.5.1" - resolved "https://registry.yarnpkg.com/stream-chat/-/stream-chat-9.5.1.tgz#b8260bc1d1470ae3c91d8c40d22f41e9c4523d7b" - integrity sha512-X9w22JfEp2cTggAwyt0gyvwe8VBy1qvJENliNen/2FJDpS3k6PCaeSO6MHNXz3c0Qy21hqxuu8/b32jCSe4LSA== +stream-chat@^9.8.0: + version "9.8.0" + resolved "https://registry.yarnpkg.com/stream-chat/-/stream-chat-9.8.0.tgz#52782073a3923367fe97638fde39ce18e4eed28a" + integrity sha512-iKFVFOKWuW2/GTWBOps9YWZoQBlXdJ05FiOKXI/AnCMCGzOpmvEyaoCtsktvdeMaetmZojVPbw/5jomP36Qg0Q== dependencies: "@types/jsonwebtoken" "^9.0.8" "@types/ws" "^8.5.14" diff --git a/examples/SampleApp/App.tsx b/examples/SampleApp/App.tsx index 5abeba3dcb..9a14e01c44 100644 --- a/examples/SampleApp/App.tsx +++ b/examples/SampleApp/App.tsx @@ -8,6 +8,7 @@ import { Chat, createTextComposerEmojiMiddleware, OverlayProvider, + setupCommandUIMiddlewares, SqliteClient, ThemeProvider, useOverlayContext, @@ -134,8 +135,14 @@ const App = () => { }, }); + setupCommandUIMiddlewares(composer); + composer.textComposer.middlewareExecutor.insert({ - middleware: [createTextComposerEmojiMiddleware(SearchIndex) as TextComposerMiddleware], + middleware: [ + createTextComposerEmojiMiddleware({ + emojiSearchIndex: SearchIndex, + }) as TextComposerMiddleware, + ], position: { after: 'stream-io/text-composer/mentions-middleware' }, unique: true, }); diff --git a/examples/SampleApp/ios/Podfile.lock b/examples/SampleApp/ios/Podfile.lock index 805f887e41..1ddbddccfa 100644 --- a/examples/SampleApp/ios/Podfile.lock +++ b/examples/SampleApp/ios/Podfile.lock @@ -2571,94 +2571,94 @@ SPEC CHECKSUMS: FirebaseRemoteConfigInterop: 98897a64aa372eac3c5b3fe2816594ccfaac55ef FirebaseSessions: c4d40a97f88f9eaff2834d61b4fea0a522d62123 fmt: a40bb5bd0294ea969aaaba240a927bd33d878cdd - glog: eb93e2f488219332457c3c4eafd2738ddc7e80b8 + glog: 5683914934d5b6e4240e497e0f4a3b42d1854183 GoogleAppMeasurement: fc0817122bd4d4189164f85374e06773b9561896 GoogleDataTransport: aae35b7ea0c09004c3797d53c8c41f66f219d6a7 GoogleUtilities: 26a3abef001b6533cf678d3eb38fd3f614b7872d hermes-engine: b417d2b2aee3b89b58e63e23a51e02be91dc876d libwebp: 02b23773aedb6ff1fd38cec7a77b81414c6842a8 nanopb: fad817b59e0457d11a5dfbde799381cd727c1275 - op-sqlite: 2e34a191af7e843608357671c94a6e2befd4b986 + op-sqlite: c33561ea312a2ae38aae032fd3a42635dc6b57e8 PromisesObjC: f5707f49cb48b9636751c5b2e7d227e43fba9f47 PromisesSwift: 9d77319bbe72ebf6d872900551f7eeba9bce2851 - RCT-Folly: e78785aa9ba2ed998ea4151e314036f6c49e6d82 + RCT-Folly: 36fe2295e44b10d831836cc0d1daec5f8abcf809 RCTDeprecation: b2eecf2d60216df56bc5e6be5f063826d3c1ee35 RCTRequired: 78522de7dc73b81f3ed7890d145fa341f5bb32ea RCTTypeSafety: c135dd2bf50402d87fd12884cbad5d5e64850edd React: b229c49ed5898dab46d60f61ed5a0bfa2ee2fadb React-callinvoker: 2ac508e92c8bd9cf834cc7d7787d94352e4af58f React-Codegen: 4b8b4817cea7a54b83851d4c1f91f79aa73de30a - React-Core: 325b4f6d9162ae8b9a6ff42fe78e260eb124180d - React-CoreModules: 558041e5258f70cd1092f82778d07b8b2ff01897 - React-cxxreact: 8fff17cbe76e6a8f9991b59552e1235429f9c74b + React-Core: 13cdd1558d0b3f6d9d5a22e14d89150280e79f02 + React-CoreModules: b07a6744f48305405e67c845ebf481b6551b712a + React-cxxreact: 1055a86c66ac35b4e80bd5fb766aed5f494dfff4 React-debug: c76e92776a86622209279fe6d24a0147584444ed - React-defaultsnativemodule: 111fb1efc95c2bd0ee18e38e9f7b57d678e6f932 - React-domnativemodule: d5154a815306fd6050ee9346a1490d2fb17eb0e5 - React-Fabric: 51ac32f0a6790b1d3b14d90c6870e5ce5bb3854a - React-FabricComponents: 1094d6a3c2566b3c56951331c44d7d3960570ac8 - React-FabricImage: 6b210ad3c72704a9ad60dde66c397ce6257333f4 + React-defaultsnativemodule: c2e3ac39909241374c3322eb2be33f4c15fe6be4 + React-domnativemodule: 240b3c95b5300cc6537594e73ebc6e8e77585b74 + React-Fabric: 3b403ca25f74d54454b31d1d2627050e0777d42c + React-FabricComponents: 154740cfcd57943709a9d0343769d17173c0ac9c + React-FabricImage: 0863e39cea98f3ca2f8c3d92984660795cec84ae React-featureflags: efb93a998907e4ad5b88f6ed77cc140914d5c36d - React-featureflagsnativemodule: a74b09429c2e7a57412d78cc159ab86ae4f15db9 - React-graphics: 17ef0ee3ef4a4c1774cc82f1f477ecef4d67c73f - React-hermes: a9a0c8377627b5506ef9a7b6f60a805c306e3f51 - React-idlecallbacksnativemodule: 0711ec5eb53c7f790641fa00e5f6ec0355d3159b - React-ImageManager: 23b4701408390428724f0e0ebb2cbed7b37c2b24 - React-jserrorhandler: e21b438ef8b99ea8bf070ff35f00bc0215b5f769 - React-jsi: f3f51595cc4c089037b536368f016d4742bf9cf7 - React-jsiexecutor: cca6c232db461e2fd213a11e9364cfa6fdaa20eb - React-jsinspector: 8a3c2637b84ebec478f46a43432a522d7489410f - React-jsinspectortracing: ee0215d2db753cc10f45fc9aa86557718d0b16fb - React-jsitracing: 258be1fd259141f6aa43012c20c70ebc02e32087 - React-logger: 018826bfd51b9f18e87f67db1590bc510ad20664 - React-Mapbuffer: 9fbb496e7d6f7c34d5e617365ee778bf96d14eae - React-microtasksnativemodule: 36adde22631838680d1be62776e8ccb83186c06a - react-native-blob-util: d03eaad9fd1bbe90bd0eedb5bad3333215976086 - react-native-cameraroll: 10054f480dfd6e0bd02fdf08fb6d82f80b362575 - react-native-document-picker: 78c262a7f9f77df2380378aa4b3413b8646ce91b - react-native-image-picker: 5f9867b6a223594dbfdb456428638daef42e6e6c - react-native-netinfo: cec9c4e86083cb5b6aba0e0711f563e2fbbff187 - react-native-safe-area-context: 02e0f487c16ccf1acc8a666bed2318ceeb5dc14c - react-native-video: 16b5c395d05f8af23e16bfe3dc0794a5514c882f - React-NativeModulesApple: ec44c21ae0bbb5f9a2df72db00294e33a00e07f0 - React-perflogger: 9e8d3c0dc0194eb932162812a168aa5dc662f418 - React-performancetimeline: 350424518f433dd43f063dc5f2cf3195c1a5b60f + React-featureflagsnativemodule: 51116d72aafea30860f315702d17eb76bbb725a3 + React-graphics: 91d9920451f633d64d31948da3ba0377b6eda8de + React-hermes: 71186f872c932e4574d5feb3ed754dda63a0b3bd + React-idlecallbacksnativemodule: 19bf1fa4b2b66fe1898ac1d185129cdcc3221c7c + React-ImageManager: 7dc7bfca8e9ecb9a7436b8a89a143a193ef5adcf + React-jserrorhandler: d8640792495ac2d78e73acbcc77a8439d1eedfef + React-jsi: 0775a66820496769ad83e629f0f5cce621a57fc7 + React-jsiexecutor: 2cf5ba481386803f3c88b85c63fa102cba5d769e + React-jsinspector: d1d9f215c7431b286acc12e83cdf0d90c265f0ed + React-jsinspectortracing: c4c1cceb9a9c266ce849c82332e35cc57ee9dae9 + React-jsitracing: 267618eec9c362658a4587c5ddcfb41b2e00c403 + React-logger: 795cd5055782db394f187f9db0477d4b25b44291 + React-Mapbuffer: 0df2a235bd0182f5cbed6c5f095e66deca12e335 + React-microtasksnativemodule: b31e56a980634f383221bfefd5111d04c14c110b + react-native-blob-util: 875bbeee07e4ada135e4edf9fc7b22acf8d9721d + react-native-cameraroll: cdc91c4c953d1a18aa3ce88b5a25698025c8c4d2 + react-native-document-picker: 19be73c0423e4bc886cef74ec282eff750698013 + react-native-image-picker: 3a03f96b11ef2b727d3d58a7ed009900b0a56a52 + react-native-netinfo: f0a9899081c185db1de5bb2fdc1c88c202a059ac + react-native-safe-area-context: 0b43456abcaaa3c8323bbfafe9c5f0f9511219d2 + react-native-video: a225b4d4d3286f3253dc7b00a62e7c8e59d04d51 + React-NativeModulesApple: b74b4e3004104429461593fe460ad790cc4928c2 + React-perflogger: ab51b7592532a0ea45bf6eed7e6cae14a368b678 + React-performancetimeline: 37192fd1019c3b3b597a877dff12f3af68305c34 React-RCTActionSheet: 592674cf61142497e0e820688f5a696e41bf16dd - React-RCTAnimation: e6d669872f9b3b4ab9527aab283b7c49283236b7 - React-RCTAppDelegate: de2343fe08be4c945d57e0ecce44afcc7dd8fc03 - React-RCTBlob: 3e2dce94c56218becc4b32b627fc2293149f798d - React-RCTFabric: adad07a08efb186bc1046041207527927524170d - React-RCTFBReactNativeSpec: d10ca5e0ccbfeac8c047361fedf8e4ac653887b6 - React-RCTImage: dc04b176c022d12a8f55ae7a7279b1e091066ae0 - React-RCTLinking: 88f5e37fe4f26fbc80791aa2a5f01baf9b9a3fd5 - React-RCTNetwork: f213693565efbd698b8e9c18d700a514b49c0c8e - React-RCTSettings: a2d32a90c45a3575568cad850abc45924999b8a5 - React-RCTText: 54cdcd1cbf6f6a91dc6317f5d2c2b7fc3f6bf7a0 - React-RCTVibration: 11dae0e7f577b5807bb7d31e2e881eb46f854fd4 + React-RCTAnimation: 8fbb8dba757b49c78f4db403133ab6399a4ce952 + React-RCTAppDelegate: 7f88baa8cb4e5d6c38bb4d84339925c70c9ac864 + React-RCTBlob: f89b162d0fe6b570a18e755eb16cbe356d3c6d17 + React-RCTFabric: f2151588dc1dc884b34b8660d72ef5237aa4b10e + React-RCTFBReactNativeSpec: 8c29630c2f379c729300e4c1e540f3d1b78d1936 + React-RCTImage: ccac9969940f170503857733f9a5f63578e106e1 + React-RCTLinking: d82427bbf18415a3732105383dff119131cadd90 + React-RCTNetwork: 12ad4d0fbde939e00251ca5ca890da2e6825cc3c + React-RCTSettings: e7865bf9f455abf427da349c855f8644b5c39afa + React-RCTText: 2cdfd88745059ec3202a0842ea75a956c7d6f27d + React-RCTVibration: a3a1458e6230dfd64b3768ebc0a4aac430d9d508 React-rendererconsistency: aa476d937c91886dd8b2ddde3191c775585ae47a - React-rendererdebug: df10d858ac7709b9c8349d952474b0746092c690 + React-rendererdebug: 5a2219e0ceb78f4ffe9ee2d80fa260bb5bac50b2 React-rncore: 517c6c3647d45de81a7920b6959adf14fed2a5a5 - React-RuntimeApple: 6922a0861c3fc4c7d544fc7d1d5cb38c779d1264 - React-RuntimeCore: 41a95876d16630ce00946eaaee7ffd5222242b44 + React-RuntimeApple: 40809bf5975c265b990dec2725f2cfb61f1afc75 + React-RuntimeCore: 375c2645e924fdca875918f07ed987653c517edc React-runtimeexecutor: a188df372373baf5066e6e229177836488799f80 - React-RuntimeHermes: f2ca409c03c36bb3dcbf61bdfa2636501f9faebd - React-runtimescheduler: 7ae10fa81428c2479e0a5534943dacb8e34c9d52 + React-RuntimeHermes: 2de8d61ec25d950ae4aebcab1a895e0bb8b18c95 + React-runtimescheduler: e8b49a60eca68a3513c259879a352ed010fed255 React-timing: e56b95cb12c6fb9146be7ba3d671cf6b5d17b2e0 - React-utils: 6eabecc0e7d7bcf21b6b33357bc1fe8ae13c7c4c - ReactAppDependencyProvider: a1fb08dfdc7ebc387b2e54cfc9decd283ed821d8 - ReactCodegen: 0f8899ac1bad260bf3b362ee848ef67a70b5a306 - ReactCommon: a30b578194de911fbe1698efb8247bfe4cb6abff - RNAudioRecorderPlayer: 11df0c7b614e9767ef24d896465c3a758c592de7 - RNCAsyncStorage: 849b77e6ab3eb838361a902b492993056924faab - RNFastImage: 462a183c4b0b6b26fdfd639e1ed6ba37536c3b87 - RNFBApp: b5626640e0f4b4fe5be4f44375df703c0d62ee4b - RNFBMessaging: 8e38f5ca846497f8a9c91d33f311c00ca52d119c - RNGestureHandler: f7b3a72c099e1e29b5b81688678bc9108d44057c - RNNotifee: 5e3b271e8ea7456a36eec994085543c9adca9168 - RNReactNativeHapticFeedback: eb5395b503c7a8f10de5e6722ef8afd3c61bc4f5 - RNReanimated: fe5c52894886953248a81a10b2a9b6eeb5398d61 - RNScreens: fc78b9b5a1274426d7a59b7d07c272bba13604fa - RNShare: dcef43a8864fcc114fd582edba7832a906fd318d - RNSVG: 71e35e78add645b84b52b0c6f203f91028e1ab5e + React-utils: 8ad62100a8780798a380b769e968c4764bad1f4b + ReactAppDependencyProvider: f2e81d80afd71a8058589e19d8a134243fa53f17 + ReactCodegen: 299e99fc57c93edc7c5396ef1a39a3a4d494f25d + ReactCommon: c8fdbc582b98a07daf201cd95c1da75dd029f3ee + RNAudioRecorderPlayer: 224c7de87722938aedce04000d09baa633148f5b + RNCAsyncStorage: dac011cac81189c2b3b8654f3db97d2b6362d165 + RNFastImage: 5c9c9fed9c076e521b3f509fe79e790418a544e8 + RNFBApp: 60366dd9d6bb01327607e1561a32508592d76db9 + RNFBMessaging: 9465c2e3adb5e02cae8d40048306a30aea7f55cf + RNGestureHandler: 0a16f3f13829c01268ae55610a40b57b713c8161 + RNNotifee: 4a6ee5c7deaf00e005050052d73ee6315dff7ec9 + RNReactNativeHapticFeedback: a49e613d48d721c99cad9689a490554104c22154 + RNReanimated: c9f295fb1679867288d238bfaf3ea39225c95e1b + RNScreens: 77f93ec55b749c49549b447527ebf78e990125f3 + RNShare: 12d13ebc179faf22534c605d17b2c2fa40191850 + RNSVG: 05776cf3f0d52d3f8e7ebee34b2189da7b8638ff SDWebImage: a7f831e1a65eb5e285e3fb046a23fcfbf08e696d SDWebImageWebPCoder: 908b83b6adda48effe7667cd2b7f78c897e5111d SocketRocket: d4aabe649be1e368d1318fdf28a022d714d65748 diff --git a/examples/SampleApp/yarn.lock b/examples/SampleApp/yarn.lock index 46dea45730..c8b4f3216c 100644 --- a/examples/SampleApp/yarn.lock +++ b/examples/SampleApp/yarn.lock @@ -7599,10 +7599,25 @@ stream-chat-react-native-core@7.1.1: version "0.0.0" uid "" -stream-chat@^9.3.0, stream-chat@^9.5.1: - version "9.5.1" - resolved "https://registry.yarnpkg.com/stream-chat/-/stream-chat-9.5.1.tgz#b8260bc1d1470ae3c91d8c40d22f41e9c4523d7b" - integrity sha512-X9w22JfEp2cTggAwyt0gyvwe8VBy1qvJENliNen/2FJDpS3k6PCaeSO6MHNXz3c0Qy21hqxuu8/b32jCSe4LSA== +stream-chat@^9.3.0: + version "9.6.1" + resolved "https://registry.yarnpkg.com/stream-chat/-/stream-chat-9.6.1.tgz#430a4ccabefd7ac8f3665b6b78d7848d197a832e" + integrity sha512-IJYjB1Zez2RdL9jnmrvhgVeUeKk4BOVm82UGU8fomf+CfIL+rsxzSQGEPx4ZpJ0g2KmsCKD/CbjiWAkbh97IcA== + dependencies: + "@types/jsonwebtoken" "^9.0.8" + "@types/ws" "^8.5.14" + axios "^1.6.0" + base64-js "^1.5.1" + form-data "^4.0.0" + isomorphic-ws "^5.0.0" + jsonwebtoken "^9.0.2" + linkifyjs "^4.2.0" + ws "^8.18.1" + +stream-chat@^9.8.0: + version "9.8.0" + resolved "https://registry.yarnpkg.com/stream-chat/-/stream-chat-9.8.0.tgz#52782073a3923367fe97638fde39ce18e4eed28a" + integrity sha512-iKFVFOKWuW2/GTWBOps9YWZoQBlXdJ05FiOKXI/AnCMCGzOpmvEyaoCtsktvdeMaetmZojVPbw/5jomP36Qg0Q== dependencies: "@types/jsonwebtoken" "^9.0.8" "@types/ws" "^8.5.14" diff --git a/examples/TypeScriptMessaging/ios/Podfile.lock b/examples/TypeScriptMessaging/ios/Podfile.lock index 77d6b61bab..ceb47fcb7b 100644 --- a/examples/TypeScriptMessaging/ios/Podfile.lock +++ b/examples/TypeScriptMessaging/ios/Podfile.lock @@ -2329,7 +2329,7 @@ SPEC CHECKSUMS: fmt: a40bb5bd0294ea969aaaba240a927bd33d878cdd glog: 08b301085f15bcbb6ff8632a8ebaf239aae04e6a hermes-engine: b417d2b2aee3b89b58e63e23a51e02be91dc876d - op-sqlite: c33561ea312a2ae38aae032fd3a42635dc6b57e8 + op-sqlite: 2e34a191af7e843608357671c94a6e2befd4b986 RCT-Folly: e78785aa9ba2ed998ea4151e314036f6c49e6d82 RCTDeprecation: b2eecf2d60216df56bc5e6be5f063826d3c1ee35 RCTRequired: 78522de7dc73b81f3ed7890d145fa341f5bb32ea @@ -2337,76 +2337,76 @@ SPEC CHECKSUMS: React: b229c49ed5898dab46d60f61ed5a0bfa2ee2fadb React-callinvoker: 2ac508e92c8bd9cf834cc7d7787d94352e4af58f React-Codegen: 4b8b4817cea7a54b83851d4c1f91f79aa73de30a - React-Core: 13cdd1558d0b3f6d9d5a22e14d89150280e79f02 - React-CoreModules: b07a6744f48305405e67c845ebf481b6551b712a - React-cxxreact: 1055a86c66ac35b4e80bd5fb766aed5f494dfff4 + React-Core: 325b4f6d9162ae8b9a6ff42fe78e260eb124180d + React-CoreModules: 558041e5258f70cd1092f82778d07b8b2ff01897 + React-cxxreact: 8fff17cbe76e6a8f9991b59552e1235429f9c74b React-debug: 0a5fcdbacc6becba0521e910c1bcfdb20f32a3f6 - React-defaultsnativemodule: 4bb28fc97fee5be63a9ebf8f7a435cfe8ba69459 - React-domnativemodule: b36a11c2597243d7563985028c51ece988d8ae33 - React-Fabric: afc561718f25b2cd800b709d934101afe376a12c - React-FabricComponents: f4e0a4e18a27bf6d39cbf2a0b42f37a92fa4e37f - React-FabricImage: 37d8e8b672eda68a19d71143eb65148084efb325 + React-defaultsnativemodule: 618dc50a0fad41b489997c3eb7aba3a74479fd14 + React-domnativemodule: 7ba599afb6c2a7ec3eb6450153e2efe0b8747e9a + React-Fabric: 252112089d2c63308f4cbfade4010b6606db67d1 + React-FabricComponents: 3c0f75321680d14d124438ab279c64ec2a3d13c4 + React-FabricImage: 728b8061cdec2857ca885fd605ee03ad43ffca98 React-featureflags: 19682e02ef5861d96b992af16a19109c3dfc1200 - React-featureflagsnativemodule: d7cddf6d907b4e5ab84f9e744b7e88461656e48c - React-graphics: b0f78580cdaf5800d25437e3d41cc6c3d83b7aea - React-hermes: 71186f872c932e4574d5feb3ed754dda63a0b3bd - React-idlecallbacksnativemodule: dd2af19cdd3bc55149d17a2409ed72b694dfbe9c - React-ImageManager: a77dde8d5aa6a2b6962c702bf3a47695ef0aa32b - React-jserrorhandler: 9c14e89f12d5904257a79aaf84a70cd2e5ac07ba - React-jsi: 0775a66820496769ad83e629f0f5cce621a57fc7 - React-jsiexecutor: 2cf5ba481386803f3c88b85c63fa102cba5d769e - React-jsinspector: 8052d532bb7a98b6e021755674659802fb140cc5 - React-jsinspectortracing: bdd8fd0adcb4813663562e7874c5842449df6d8a - React-jsitracing: 2bab3bf55de3d04baf205def375fa6643c47c794 - React-logger: 795cd5055782db394f187f9db0477d4b25b44291 - React-Mapbuffer: 0502faf46cab8fb89cfc7bf3e6c6109b6ef9b5de - React-microtasksnativemodule: 663bc64e3a96c5fc91081923ae7481adc1359a78 - react-native-blob-util: fa67658b21ee53bf62a54741a74c441c0e3f2c90 - react-native-document-picker: 5cb1c6615796389f4f1b7fe2e4f103e38e4d6398 - react-native-image-picker: 0452fc9efc21101946746663bf34e0db5741f00c - react-native-netinfo: f0a9899081c185db1de5bb2fdc1c88c202a059ac - react-native-safe-area-context: 9c33120e9eac7741a5364cc2d9f74665049b76b3 - react-native-video: c95c10cdac8541f74bd92194dd6a8137ebe6a19d - React-NativeModulesApple: 16fbd5b040ff6c492dacc361d49e63cba7a6a7a1 - React-perflogger: ab51b7592532a0ea45bf6eed7e6cae14a368b678 - React-performancetimeline: bc2e48198ec814d578ac8401f65d78a574358203 + React-featureflagsnativemodule: 23528c7e7d50782b7ef0804168ba40bbaf1e86ab + React-graphics: fefe48f71bfe6f48fd037f59e8277b12e91b6be1 + React-hermes: a9a0c8377627b5506ef9a7b6f60a805c306e3f51 + React-idlecallbacksnativemodule: 7e2b6a3b70e042f89cd91dbd73c479bb39a72a7e + React-ImageManager: e3300996ac2e2914bf821f71e2f2c92ae6e62ae2 + React-jserrorhandler: fa75876c662e5d7e79d6efc763fc9f4c88e26986 + React-jsi: f3f51595cc4c089037b536368f016d4742bf9cf7 + React-jsiexecutor: cca6c232db461e2fd213a11e9364cfa6fdaa20eb + React-jsinspector: 2bd4c9fddf189d6ec2abf4948461060502582bef + React-jsinspectortracing: a417d8a0ad481edaa415734b4dac81e3e5ee7dc6 + React-jsitracing: 1ff7172c5b0522cbf6c98d82bdbb160e49b5804e + React-logger: 018826bfd51b9f18e87f67db1590bc510ad20664 + React-Mapbuffer: 3c11cee7737609275c7b66bd0b1de475f094cedf + React-microtasksnativemodule: 843f352b32aacbe13a9c750190d34df44c3e6c2c + react-native-blob-util: f82bbc6f071231ae76e1c03b77290de1781df313 + react-native-document-picker: 8663632f183816c420ea0c462711d1abc19ac936 + react-native-image-picker: df2b20cdfa981f7288f4019774d9baa26a4772c1 + react-native-netinfo: cec9c4e86083cb5b6aba0e0711f563e2fbbff187 + react-native-safe-area-context: 7e513d737b0b5c1d10bbe0e5fcc9f925a7be144c + react-native-video: b0fc63469ac8cab3bae8e0e7368ba940e425f8a4 + React-NativeModulesApple: 88433b6946778bea9c153e27b671de15411bf225 + React-perflogger: 9e8d3c0dc0194eb932162812a168aa5dc662f418 + React-performancetimeline: 5a2d6efef52bdcefac079c7baa30934978acd023 React-RCTActionSheet: 592674cf61142497e0e820688f5a696e41bf16dd - React-RCTAnimation: 8fbb8dba757b49c78f4db403133ab6399a4ce952 - React-RCTAppDelegate: 7f88baa8cb4e5d6c38bb4d84339925c70c9ac864 - React-RCTBlob: f89b162d0fe6b570a18e755eb16cbe356d3c6d17 - React-RCTFabric: 8ad6d875abe6e87312cef90e4b15ef7f6bed72e6 - React-RCTFBReactNativeSpec: 8c29630c2f379c729300e4c1e540f3d1b78d1936 - React-RCTImage: ccac9969940f170503857733f9a5f63578e106e1 - React-RCTLinking: d82427bbf18415a3732105383dff119131cadd90 - React-RCTNetwork: 12ad4d0fbde939e00251ca5ca890da2e6825cc3c - React-RCTSettings: e7865bf9f455abf427da349c855f8644b5c39afa - React-RCTText: 2cdfd88745059ec3202a0842ea75a956c7d6f27d - React-RCTVibration: a3a1458e6230dfd64b3768ebc0a4aac430d9d508 + React-RCTAnimation: e6d669872f9b3b4ab9527aab283b7c49283236b7 + React-RCTAppDelegate: de2343fe08be4c945d57e0ecce44afcc7dd8fc03 + React-RCTBlob: 3e2dce94c56218becc4b32b627fc2293149f798d + React-RCTFabric: cac2c033381d79a5956e08550b0220cb2d78ea93 + React-RCTFBReactNativeSpec: d10ca5e0ccbfeac8c047361fedf8e4ac653887b6 + React-RCTImage: dc04b176c022d12a8f55ae7a7279b1e091066ae0 + React-RCTLinking: 88f5e37fe4f26fbc80791aa2a5f01baf9b9a3fd5 + React-RCTNetwork: f213693565efbd698b8e9c18d700a514b49c0c8e + React-RCTSettings: a2d32a90c45a3575568cad850abc45924999b8a5 + React-RCTText: 54cdcd1cbf6f6a91dc6317f5d2c2b7fc3f6bf7a0 + React-RCTVibration: 11dae0e7f577b5807bb7d31e2e881eb46f854fd4 React-rendererconsistency: 64e897e00d2568fd8dfe31e2496f80e85c0aaad1 - React-rendererdebug: a3f6d3ae7d2fa0035885026756281c07ee32479e + React-rendererdebug: 41ce452460c44bba715d9e41d5493a96de277764 React-rncore: 58748c2aa445f56b99e5118dad0aedb51c40ce9f - React-RuntimeApple: f0fda7bacabd32daa099cfda8f07466c30acd149 - React-RuntimeCore: 683ee0b6a76d4b4bf6fbf83a541895b4887cc636 + React-RuntimeApple: 7785ed0d8ae54da65a88736bb63ca97608a6d933 + React-RuntimeCore: 6029ea70bc77f98cfd43ebe69217f14e93ba1f12 React-runtimeexecutor: a188df372373baf5066e6e229177836488799f80 - React-RuntimeHermes: 907c8e9bec13ea6466b94828c088c24590d4d0b6 - React-runtimescheduler: a2e2a39125dd6426b5d8b773f689d660cd7c5f60 + React-RuntimeHermes: a264609c28b796edfffc8ae4cb8fad1773ab948b + React-runtimescheduler: 23ec3a1e0fb1ec752d1a9c1fb15258c30bfc7222 React-timing: bb220a53a795ed57976a4855c521f3de2f298fe5 - React-utils: 300d8bbb6555dcffaca71e7a0663201b5c7edbbc - ReactAppDependencyProvider: f2e81d80afd71a8058589e19d8a134243fa53f17 - ReactCodegen: a63a0ab6ae824aef2e8c744981edd718b16eb9f2 - ReactCommon: 3d39389f8e2a2157d5c999f8fba57bd1c8f226f0 - RNAudioRecorderPlayer: 224c7de87722938aedce04000d09baa633148f5b - RNCClipboard: 7659a79c651d0e889bbd533dcc8bc8ff1e98ed70 - RNGestureHandler: 9b05fab9a0b48fe48c968de7dbb9ca38a2b4f7ab - RNReactNativeHapticFeedback: 5fdbbaedabc1698dc3bb2a72105fadf63136a451 - RNReanimated: ff71ce0443c71c8a77501ace7b9738ede83cfa55 - RNScreens: 991214b4e69016c1ae32830d9cea31c9c9422367 - RNShare: 6b1ee93f4fce1346c7c299c3107af20af05120b4 - RNSVG: 8588ee1ca9b2e6fd2c99466e35b3db0e9f81bb40 + React-utils: 3b054aaebe658fc710a8d239d0e4b9fd3e0b78f9 + ReactAppDependencyProvider: a1fb08dfdc7ebc387b2e54cfc9decd283ed821d8 + ReactCodegen: 008c319179d681a6a00966edfc67fda68f9fbb2e + ReactCommon: 0c097b53f03d6bf166edbcd0915da32f3015dd90 + RNAudioRecorderPlayer: 11df0c7b614e9767ef24d896465c3a758c592de7 + RNCClipboard: f13dd3ceae005858e137ae9e70f3c414e174ff81 + RNGestureHandler: 8b1080a6db0be82dbca18550d6212b885bfab6b2 + RNReactNativeHapticFeedback: 66c6b0cf19f5d9dae8be36b2336e1fe2a2e42566 + RNReanimated: 6383cd0d805e48768b97bd65bcb1d06f0e69ab8e + RNScreens: 0d4cb9afe052607ad0aa71f645a88bb7c7f2e64c + RNShare: 56b5431c60e1e9ee167191f4f327471af1c2941a + RNSVG: 8126581b369adf6a0004b6a6cab1a55e3002d5b0 SocketRocket: d4aabe649be1e368d1318fdf28a022d714d65748 - stream-chat-react-native: 58dc941310d380dd0aca8c4509376745be2199d8 + stream-chat-react-native: 3c38996ce24e70b3b05c471183d3d42970505b5b Yoga: afd04ff05ebe0121a00c468a8a3c8080221cb14c PODFILE CHECKSUM: 6b7a4b74915b42bfe4ffddaf67cbf5e7a2bfeab3 -COCOAPODS: 1.14.3 +COCOAPODS: 1.16.2 diff --git a/examples/TypeScriptMessaging/yarn.lock b/examples/TypeScriptMessaging/yarn.lock index 6fd8e7c0a4..3db431f0ca 100644 --- a/examples/TypeScriptMessaging/yarn.lock +++ b/examples/TypeScriptMessaging/yarn.lock @@ -6931,10 +6931,10 @@ statuses@~1.5.0: resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" integrity sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA== -stream-chat-react-native-core@7.1.0: - version "7.1.0" - resolved "https://registry.yarnpkg.com/stream-chat-react-native-core/-/stream-chat-react-native-core-7.1.0.tgz#b5002ec967467a2ac4be54700e5e4e60bbd5fd97" - integrity sha512-Rfecu6kH2zBW0ufhVz076NlpOg6QxNgShGnK4js/ypjSZ4rGZIKMFHNuArLVr/uSuTWiVPNO1zMI/LyvljtwdQ== +stream-chat-react-native-core@7.1.1: + version "7.1.1" + resolved "https://registry.yarnpkg.com/stream-chat-react-native-core/-/stream-chat-react-native-core-7.1.1.tgz#b22faf35fa5defd24c730873aeba30c172556089" + integrity sha512-9AkSKWzywN2FfsMgDfeoCatr/qoG+zJzM2u5j3PU6WU7qIhZtM/7+2UB0WKAY7fA5MjaoMEzV1mBF+hILP1KOw== dependencies: "@gorhom/bottom-sheet" "^5.1.1" dayjs "1.10.5" @@ -6947,7 +6947,7 @@ stream-chat-react-native-core@7.1.0: path "0.12.7" react-native-markdown-package "1.8.2" react-native-url-polyfill "^1.3.0" - stream-chat "^9.2.0" + stream-chat "^9.3.0" use-sync-external-store "^1.4.0" "stream-chat-react-native-core@link:../../package": @@ -6958,10 +6958,10 @@ stream-chat-react-native-core@7.1.0: version "0.0.0" uid "" -stream-chat@^9.2.0: - version "9.3.0" - resolved "https://registry.yarnpkg.com/stream-chat/-/stream-chat-9.3.0.tgz#35ca4db9e841eb92d07413ae156de0500ad77b23" - integrity sha512-S73B3HrvmQvJjq58Zjo50vh74juhsWsVRpT+OBjGAxSGxlA+ITkZ3vKs8Y/r2eDK7mBTMmX5QCruFaDJH5dRuw== +stream-chat@^9.3.0: + version "9.6.1" + resolved "https://registry.yarnpkg.com/stream-chat/-/stream-chat-9.6.1.tgz#430a4ccabefd7ac8f3665b6b78d7848d197a832e" + integrity sha512-IJYjB1Zez2RdL9jnmrvhgVeUeKk4BOVm82UGU8fomf+CfIL+rsxzSQGEPx4ZpJ0g2KmsCKD/CbjiWAkbh97IcA== dependencies: "@types/jsonwebtoken" "^9.0.8" "@types/ws" "^8.5.14" @@ -6973,10 +6973,10 @@ stream-chat@^9.2.0: linkifyjs "^4.2.0" ws "^8.18.1" -stream-chat@^9.5.1: - version "9.5.1" - resolved "https://registry.yarnpkg.com/stream-chat/-/stream-chat-9.5.1.tgz#b8260bc1d1470ae3c91d8c40d22f41e9c4523d7b" - integrity sha512-X9w22JfEp2cTggAwyt0gyvwe8VBy1qvJENliNen/2FJDpS3k6PCaeSO6MHNXz3c0Qy21hqxuu8/b32jCSe4LSA== +stream-chat@^9.8.0: + version "9.8.0" + resolved "https://registry.yarnpkg.com/stream-chat/-/stream-chat-9.8.0.tgz#52782073a3923367fe97638fde39ce18e4eed28a" + integrity sha512-iKFVFOKWuW2/GTWBOps9YWZoQBlXdJ05FiOKXI/AnCMCGzOpmvEyaoCtsktvdeMaetmZojVPbw/5jomP36Qg0Q== dependencies: "@types/jsonwebtoken" "^9.0.8" "@types/ws" "^8.5.14" diff --git a/package/expo-package/yarn.lock b/package/expo-package/yarn.lock index 89930669cc..4dac5269a5 100644 --- a/package/expo-package/yarn.lock +++ b/package/expo-package/yarn.lock @@ -4787,10 +4787,10 @@ stream-buffers@2.2.x, stream-buffers@~2.2.0: version "0.0.0" uid "" -stream-chat@^9.7.0: - version "9.7.0" - resolved "https://registry.yarnpkg.com/stream-chat/-/stream-chat-9.7.0.tgz#8302a4dfd2b68115c57cd0a102976542a79cf132" - integrity sha512-8K4RQAUFfznCxpJ5CMIrMQQLroaZ1snB4aR/Xnwa9UpxNCzn3kIi61AVkfsaHTHGojPz5LA3c3faVb251u4HnA== +stream-chat@^9.8.0: + version "9.8.0" + resolved "https://registry.yarnpkg.com/stream-chat/-/stream-chat-9.8.0.tgz#52782073a3923367fe97638fde39ce18e4eed28a" + integrity sha512-iKFVFOKWuW2/GTWBOps9YWZoQBlXdJ05FiOKXI/AnCMCGzOpmvEyaoCtsktvdeMaetmZojVPbw/5jomP36Qg0Q== dependencies: "@types/jsonwebtoken" "^9.0.8" "@types/ws" "^8.5.14" diff --git a/package/package.json b/package/package.json index 8303e2c348..dadac1ce84 100644 --- a/package/package.json +++ b/package/package.json @@ -78,7 +78,7 @@ "path": "0.12.7", "react-native-markdown-package": "1.8.2", "react-native-url-polyfill": "^1.3.0", - "stream-chat": "^9.7.0", + "stream-chat": "^9.8.0", "use-sync-external-store": "^1.4.0" }, "peerDependencies": { diff --git a/package/src/components/AutoCompleteInput/AutoCompleteInput.tsx b/package/src/components/AutoCompleteInput/AutoCompleteInput.tsx index 0afa00d62d..d5933cd5f7 100644 --- a/package/src/components/AutoCompleteInput/AutoCompleteInput.tsx +++ b/package/src/components/AutoCompleteInput/AutoCompleteInput.tsx @@ -42,9 +42,7 @@ type AutoCompleteInputPropsWithContext = TextInputProps & type AutoCompleteInputProps = Partial; const textComposerStateSelector = (state: TextComposerState) => ({ - // TODO: Comment out once the commands PR has been merged on the LLC - // command: state.command, - command: null, + command: state.command, text: state.text, }); diff --git a/package/src/components/Channel/Channel.tsx b/package/src/components/Channel/Channel.tsx index e202b6b7b0..51ed4935cc 100644 --- a/package/src/components/Channel/Channel.tsx +++ b/package/src/components/Channel/Channel.tsx @@ -573,7 +573,6 @@ const ChannelWithContext = (props: PropsWithChildren) = Gallery = GalleryDefault, getMessagesGroupStyles, Giphy = GiphyDefault, - isCommandUIEnabled, giphyVersion = 'fixed_height', handleAttachButtonPress, handleBan, @@ -1778,7 +1777,6 @@ const ChannelWithContext = (props: PropsWithChildren) = InputButtons, InputEditingStateHeader, InputReplyStateHeader, - isCommandUIEnabled: isCommandUIEnabled ?? !!clientChannelConfig?.commands?.length, MoreOptionsButton, openPollCreationDialog, SendButton, diff --git a/package/src/components/Channel/hooks/useCreateInputMessageInputContext.ts b/package/src/components/Channel/hooks/useCreateInputMessageInputContext.ts index 751e3856b1..9f2c83e38b 100644 --- a/package/src/components/Channel/hooks/useCreateInputMessageInputContext.ts +++ b/package/src/components/Channel/hooks/useCreateInputMessageInputContext.ts @@ -50,7 +50,6 @@ export const useCreateInputMessageInputContext = ({ InputButtons, InputEditingStateHeader, InputReplyStateHeader, - isCommandUIEnabled, MoreOptionsButton, openPollCreationDialog, SendButton, @@ -117,7 +116,6 @@ export const useCreateInputMessageInputContext = ({ InputButtons, InputEditingStateHeader, InputReplyStateHeader, - isCommandUIEnabled, MoreOptionsButton, openPollCreationDialog, SendButton, diff --git a/package/src/components/MessageInput/InputButtons.tsx b/package/src/components/MessageInput/InputButtons.tsx index f61ee01e03..d385cf2717 100644 --- a/package/src/components/MessageInput/InputButtons.tsx +++ b/package/src/components/MessageInput/InputButtons.tsx @@ -35,9 +35,7 @@ export type InputButtonsWithContextProps = Pick< Pick; const textComposerStateSelector = (state: TextComposerState) => ({ - // TODO: Comment out once the commands PR has been merged on the LLC - // command: state.command, - command: null, + command: state.command, hasText: !!state.text, }); diff --git a/package/src/components/MessageInput/MessageInput.tsx b/package/src/components/MessageInput/MessageInput.tsx index f21a714f9e..c39c9457f3 100644 --- a/package/src/components/MessageInput/MessageInput.tsx +++ b/package/src/components/MessageInput/MessageInput.tsx @@ -160,9 +160,7 @@ type MessageInputPropsWithContext = Pick< Pick & { editing: boolean }; const textComposerStateSelector = (state: TextComposerState) => ({ - // TODO: Comment out once the commands PR has been merged on the LLC - // command: state.command, - command: null, + command: state.command, hasText: !!state.text, mentionedUsers: state.mentionedUsers, suggestions: state.suggestions, @@ -336,7 +334,7 @@ const MessageInputWithContext = (props: MessageInputPropsWithContext) => { } = useAudioController(); const asyncAudioEnabled = audioRecordingEnabled && isAudioRecorderAvailable(); - const showSendingButton = hasText || attachments.length; + const showSendingButton = hasText || attachments.length || command; const isSendingButtonVisible = useMemo(() => { return asyncAudioEnabled ? showSendingButton && !recording : true; diff --git a/package/src/components/MessageInput/SendButton.tsx b/package/src/components/MessageInput/SendButton.tsx index 1fdeb486b7..b5b9959cf4 100644 --- a/package/src/components/MessageInput/SendButton.tsx +++ b/package/src/components/MessageInput/SendButton.tsx @@ -20,13 +20,8 @@ export type SendButtonProps = Partial ({ - // TODO: Comment out once the commands PR has been merged on the LLC - // command: state.command, - command: null, + command: state.command, }); export const SendButton = (props: SendButtonProps) => { diff --git a/package/src/components/MessageInput/components/CommandInput.tsx b/package/src/components/MessageInput/components/CommandInput.tsx index 0c4385033c..c789f657f1 100644 --- a/package/src/components/MessageInput/components/CommandInput.tsx +++ b/package/src/components/MessageInput/components/CommandInput.tsx @@ -21,11 +21,9 @@ export type CommandInputProps = Partial< > & { disabled: boolean; }; + const textComposerStateSelector = (state: TextComposerState) => ({ - // TODO: Comment out once the commands PR has been merged on the LLC - // command: state.command, - command: null, - text: state.text, + command: state.command, }); export const CommandInput = ({ @@ -52,8 +50,7 @@ export const CommandInput = ({ } = useTheme(); const onCloseHandler = () => { - // TODO: Comment out once the commands PR has been merged on the LLC - // textComposer.clearCommand(); + textComposer.clearCommand(); messageComposer?.restore(); }; @@ -61,9 +58,7 @@ export const CommandInput = ({ return null; } - // TODO: Comment out once the commands PR has been merged on the LLC - // const commandName = (command.name ?? '').toUpperCase(); - const commandName = ''; + const commandName = (command.name ?? '').toUpperCase(); return ( diff --git a/package/src/contexts/messageInputContext/MessageInputContext.tsx b/package/src/contexts/messageInputContext/MessageInputContext.tsx index 47e372f7a8..67f2840d46 100644 --- a/package/src/contexts/messageInputContext/MessageInputContext.tsx +++ b/package/src/contexts/messageInputContext/MessageInputContext.tsx @@ -64,7 +64,6 @@ import { import { isDocumentPickerAvailable, MediaTypes, NativeHandlers } from '../../native'; import { File } from '../../types/types'; import { compressedImageURI } from '../../utils/compressImage'; -import { setupCommandUIMiddleware } from '../../utils/setupCommandUIMiddleware'; import { AttachmentPickerIconProps, useAttachmentPickerContext, @@ -293,10 +292,6 @@ export type InputMessageInputContextValue = { */ ImageUploadPreview: React.ComponentType; InputEditingStateHeader: React.ComponentType; - /** - * Boolean value to determine if the input should show a command UI. - */ - isCommandUIEnabled?: boolean; CommandInput: React.ComponentType; InputReplyStateHeader: React.ComponentType; /** @@ -460,10 +455,6 @@ export const MessageInputProvider = ({ attachmentManager.setCustomUploadFn(value.doFileUploadRequest); } - if (value.isCommandUIEnabled) { - setupCommandUIMiddleware(messageComposer); - } - if (enableOfflineSupport) { messageComposer.compositionMiddlewareExecutor.replace([ createAttachmentsCompositionMiddleware(messageComposer), @@ -473,13 +464,7 @@ export const MessageInputProvider = ({ createDraftAttachmentsCompositionMiddleware(messageComposer), ]); } - }, [ - value.doFileUploadRequest, - value.isCommandUIEnabled, - enableOfflineSupport, - messageComposer, - attachmentManager, - ]); + }, [value.doFileUploadRequest, enableOfflineSupport, messageComposer, attachmentManager]); /** * Function for capturing a photo and uploading it diff --git a/package/src/contexts/messageInputContext/hooks/useCreateMessageInputContext.ts b/package/src/contexts/messageInputContext/hooks/useCreateMessageInputContext.ts index 033c99170d..8a1b1e8971 100644 --- a/package/src/contexts/messageInputContext/hooks/useCreateMessageInputContext.ts +++ b/package/src/contexts/messageInputContext/hooks/useCreateMessageInputContext.ts @@ -40,7 +40,6 @@ export const useCreateMessageInputContext = ({ FileAttachmentUploadPreview, FileSelectorIcon, FileUploadPreview, - isCommandUIEnabled, handleAttachButtonPress, hasCameraPicker, hasCommands, @@ -130,7 +129,6 @@ export const useCreateMessageInputContext = ({ InputButtons, InputEditingStateHeader, InputReplyStateHeader, - isCommandUIEnabled, MoreOptionsButton, openAttachmentPicker, openFilePicker, @@ -154,7 +152,7 @@ export const useCreateMessageInputContext = ({ VideoRecorderSelectorIcon, }), // eslint-disable-next-line react-hooks/exhaustive-deps - [cooldownEndsAt, isCommandUIEnabled, threadId, showPollCreationDialog, selectedPicker], + [cooldownEndsAt, threadId, showPollCreationDialog, selectedPicker], ); return messageInputContext; diff --git a/package/src/index.ts b/package/src/index.ts index e2b1caa837..fc4a6a5d64 100644 --- a/package/src/index.ts +++ b/package/src/index.ts @@ -15,6 +15,7 @@ export * from './types/types'; export * from './utils/patchMessageTextCommand'; export * from './utils/i18n/Streami18n'; +export * from './utils/setupCommandUIMiddlewares'; export * from './utils/utils'; export { default as enTranslations } from './i18n/en.json'; diff --git a/package/src/middlewares/emojiControl.ts b/package/src/middlewares/emojiControl.ts index d07b1917e4..776848cbfb 100644 --- a/package/src/middlewares/emojiControl.ts +++ b/package/src/middlewares/emojiControl.ts @@ -88,10 +88,13 @@ export type EmojiMiddleware = Middleware< * }} options * @returns */ -export const createTextComposerEmojiMiddleware = ( - emojiSearchIndex: EmojiSearchIndex, - options?: Partial, -): EmojiMiddleware => { +export const createTextComposerEmojiMiddleware = ({ + emojiSearchIndex, + options, +}: { + emojiSearchIndex: EmojiSearchIndex; + options?: Partial; +}): EmojiMiddleware => { const finalOptions = mergeWith(DEFAULT_OPTIONS, options ?? {}); const emojiSearchSource = new EmojiSearchSource(emojiSearchIndex); emojiSearchSource.activate(); diff --git a/package/src/utils/setupCommandUIMiddleware.ts b/package/src/utils/setupCommandUIMiddleware.ts deleted file mode 100644 index f13b732a93..0000000000 --- a/package/src/utils/setupCommandUIMiddleware.ts +++ /dev/null @@ -1,28 +0,0 @@ -import { - // createCommandInjectionMiddleware, - // createCommandStringExtractionMiddleware, - // createDraftCommandInjectionMiddleware, - MessageComposer, - // TextComposerMiddleware, -} from 'stream-chat'; - -// TODO: Comment out once the commands PR has been merged on the LLC -// @ts-ignore -// eslint-disable-next-line @typescript-eslint/no-unused-vars -export const setupCommandUIMiddleware = (messageComposer: MessageComposer) => { - // TODO: Comment out once the commands PR has been merged on the LLC - // messageComposer.compositionMiddlewareExecutor.insert({ - // middleware: [createCommandInjectionMiddleware(messageComposer)], - // position: { after: 'stream-io/message-composer-middleware/attachments' }, - // }); - // - // messageComposer.draftCompositionMiddlewareExecutor.insert({ - // middleware: [createDraftCommandInjectionMiddleware(messageComposer)], - // position: { after: 'stream-io/message-composer-middleware/draft-attachments' }, - // }); - // - // messageComposer.textComposer.middlewareExecutor.insert({ - // middleware: [createCommandStringExtractionMiddleware() as TextComposerMiddleware], - // position: { after: 'stream-io/text-composer/commands-middleware' }, - // }); -}; diff --git a/package/src/utils/setupCommandUIMiddlewares.ts b/package/src/utils/setupCommandUIMiddlewares.ts new file mode 100644 index 0000000000..472e241864 --- /dev/null +++ b/package/src/utils/setupCommandUIMiddlewares.ts @@ -0,0 +1,30 @@ +import { + createActiveCommandGuardMiddleware, + createCommandInjectionMiddleware, + createCommandStringExtractionMiddleware, + createDraftCommandInjectionMiddleware, + MessageComposer, + TextComposerMiddleware, +} from 'stream-chat'; + +export const setupCommandUIMiddlewares = (messageComposer: MessageComposer) => { + messageComposer.compositionMiddlewareExecutor.insert({ + middleware: [createCommandInjectionMiddleware(messageComposer)], + position: { after: 'stream-io/message-composer-middleware/attachments' }, + }); + + messageComposer.draftCompositionMiddlewareExecutor.insert({ + middleware: [createDraftCommandInjectionMiddleware(messageComposer)], + position: { after: 'stream-io/message-composer-middleware/draft-attachments' }, + }); + + messageComposer.textComposer.middlewareExecutor.insert({ + middleware: [createActiveCommandGuardMiddleware() as TextComposerMiddleware], + position: { before: 'stream-io/text-composer/commands-middleware' }, + }); + + messageComposer.textComposer.middlewareExecutor.insert({ + middleware: [createCommandStringExtractionMiddleware() as TextComposerMiddleware], + position: { after: 'stream-io/text-composer/commands-middleware' }, + }); +}; diff --git a/package/yarn.lock b/package/yarn.lock index 2d3ca10153..01c62bb848 100644 --- a/package/yarn.lock +++ b/package/yarn.lock @@ -7827,10 +7827,10 @@ statuses@~1.5.0: resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" integrity sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA== -stream-chat@^9.7.0: - version "9.7.0" - resolved "https://registry.yarnpkg.com/stream-chat/-/stream-chat-9.7.0.tgz#8302a4dfd2b68115c57cd0a102976542a79cf132" - integrity sha512-8K4RQAUFfznCxpJ5CMIrMQQLroaZ1snB4aR/Xnwa9UpxNCzn3kIi61AVkfsaHTHGojPz5LA3c3faVb251u4HnA== +stream-chat@^9.8.0: + version "9.8.0" + resolved "https://registry.yarnpkg.com/stream-chat/-/stream-chat-9.8.0.tgz#52782073a3923367fe97638fde39ce18e4eed28a" + integrity sha512-iKFVFOKWuW2/GTWBOps9YWZoQBlXdJ05FiOKXI/AnCMCGzOpmvEyaoCtsktvdeMaetmZojVPbw/5jomP36Qg0Q== dependencies: "@types/jsonwebtoken" "^9.0.8" "@types/ws" "^8.5.14"