From eb235621aca68a5608831b5511de9c6958f15f00 Mon Sep 17 00:00:00 2001
From: Ivan Sekovanikj <31964049+isekovanic@users.noreply.github.com>
Date: Wed, 29 Jul 2026 16:49:28 +0200
Subject: [PATCH 1/2] fix: bump rn version to fix hermes memory regression
(#3744)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
## ๐ฏ Goal
The RN team released a backport of the `hermes` fix related to extreme
memory consumption to `0.86` through
[`0.86.2`](https://github.com/react/react-native/releases/tag/v0.86.2)
as [seen here](https://github.com/react/react-native/pull/57646).
We want to bump the `SampleApp` immediately as this would do wonders for
benchmarking properly.
Original issue reference: https://github.com/facebook/hermes/issues/2048
## ๐ Implementation details
## ๐จ UI Changes
iOS
Android
## ๐งช Testing
## โ๏ธ Checklist
- [ ] I have signed the [Stream
CLA](https://docs.google.com/forms/d/e/1FAIpQLScFKsKkAJI7mhCr7K9rEIOpqIDThrWxuvxnwUq2XkHyG154vQ/viewform)
(required)
- [ ] PR targets the `develop` branch
- [ ] Documentation is updated
- [ ] New code is tested in main example apps, including all possible
scenarios
- [ ] SampleApp iOS and Android
- [ ] Expo iOS and Android
---
examples/SampleApp/package.json | 8 +-
yarn.lock | 272 +++++++++++++++++++++++++++++---
2 files changed, 257 insertions(+), 23 deletions(-)
diff --git a/examples/SampleApp/package.json b/examples/SampleApp/package.json
index ebee6588ae..22fcc452c4 100644
--- a/examples/SampleApp/package.json
+++ b/examples/SampleApp/package.json
@@ -48,7 +48,7 @@
"emoji-mart": "^5.6.0",
"lodash.mergewith": "^4.6.2",
"react": "19.2.3",
- "react-native": "0.86.0",
+ "react-native": "0.86.2",
"react-native-blob-util": "^0.24.10",
"react-native-gesture-handler": "^3.1.0",
"react-native-haptic-feedback": "^3.0.0",
@@ -81,9 +81,9 @@
"@react-native-community/cli": "20.1.0",
"@react-native-community/cli-platform-android": "20.1.0",
"@react-native-community/cli-platform-ios": "20.1.0",
- "@react-native/babel-preset": "0.86.0",
- "@react-native/metro-config": "0.86.0",
- "@react-native/typescript-config": "0.86.0",
+ "@react-native/babel-preset": "0.86.2",
+ "@react-native/metro-config": "0.86.2",
+ "@react-native/typescript-config": "0.86.2",
"@rnx-kit/metro-config": "^2.1.0",
"@types/lodash.mergewith": "^4.6.9",
"@types/react": "^19.2.0",
diff --git a/yarn.lock b/yarn.lock
index 7b0d33607c..f0b9cb7998 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -5459,6 +5459,13 @@ __metadata:
languageName: node
linkType: hard
+"@react-native/assets-registry@npm:0.86.2":
+ version: 0.86.2
+ resolution: "@react-native/assets-registry@npm:0.86.2"
+ checksum: 10c0/e063219dd8548240a278138a595f758a6a140cafe1493631a3d12c3da673aaf6b7d6c2c7115000b13d93c88145ec54b9be509aa683846554273c01bc4a8759c7
+ languageName: node
+ linkType: hard
+
"@react-native/babel-plugin-codegen@npm:0.80.2":
version: 0.80.2
resolution: "@react-native/babel-plugin-codegen@npm:0.80.2"
@@ -5479,6 +5486,16 @@ __metadata:
languageName: node
linkType: hard
+"@react-native/babel-plugin-codegen@npm:0.86.2":
+ version: 0.86.2
+ resolution: "@react-native/babel-plugin-codegen@npm:0.86.2"
+ dependencies:
+ "@babel/traverse": "npm:^7.29.0"
+ "@react-native/codegen": "npm:0.86.2"
+ checksum: 10c0/ea2faab711f07578f0d0b1a62ccc731a60fdb21b0bf3924209fa055d62f597d6104f6646b5cbf416da4dc1a012f5c708e7d58694ddfafab9325dd60b0bf495f2
+ languageName: node
+ linkType: hard
+
"@react-native/babel-preset@npm:0.80.2":
version: 0.80.2
resolution: "@react-native/babel-preset@npm:0.80.2"
@@ -5577,6 +5594,49 @@ __metadata:
languageName: node
linkType: hard
+"@react-native/babel-preset@npm:0.86.2":
+ version: 0.86.2
+ resolution: "@react-native/babel-preset@npm:0.86.2"
+ dependencies:
+ "@babel/core": "npm:^7.25.2"
+ "@babel/plugin-proposal-export-default-from": "npm:^7.24.7"
+ "@babel/plugin-syntax-dynamic-import": "npm:^7.8.3"
+ "@babel/plugin-syntax-export-default-from": "npm:^7.24.7"
+ "@babel/plugin-syntax-nullish-coalescing-operator": "npm:^7.8.3"
+ "@babel/plugin-syntax-optional-chaining": "npm:^7.8.3"
+ "@babel/plugin-transform-async-generator-functions": "npm:^7.25.4"
+ "@babel/plugin-transform-async-to-generator": "npm:^7.24.7"
+ "@babel/plugin-transform-block-scoping": "npm:^7.25.0"
+ "@babel/plugin-transform-class-properties": "npm:^7.25.4"
+ "@babel/plugin-transform-classes": "npm:^7.25.4"
+ "@babel/plugin-transform-destructuring": "npm:^7.24.8"
+ "@babel/plugin-transform-flow-strip-types": "npm:^7.25.2"
+ "@babel/plugin-transform-for-of": "npm:^7.24.7"
+ "@babel/plugin-transform-modules-commonjs": "npm:^7.24.8"
+ "@babel/plugin-transform-named-capturing-groups-regex": "npm:^7.24.7"
+ "@babel/plugin-transform-nullish-coalescing-operator": "npm:^7.24.7"
+ "@babel/plugin-transform-optional-catch-binding": "npm:^7.24.7"
+ "@babel/plugin-transform-optional-chaining": "npm:^7.24.8"
+ "@babel/plugin-transform-private-methods": "npm:^7.24.7"
+ "@babel/plugin-transform-private-property-in-object": "npm:^7.24.7"
+ "@babel/plugin-transform-react-display-name": "npm:^7.24.7"
+ "@babel/plugin-transform-react-jsx": "npm:^7.25.2"
+ "@babel/plugin-transform-react-jsx-self": "npm:^7.24.7"
+ "@babel/plugin-transform-react-jsx-source": "npm:^7.24.7"
+ "@babel/plugin-transform-regenerator": "npm:^7.24.7"
+ "@babel/plugin-transform-runtime": "npm:^7.24.7"
+ "@babel/plugin-transform-typescript": "npm:^7.25.2"
+ "@babel/plugin-transform-unicode-regex": "npm:^7.24.7"
+ "@react-native/babel-plugin-codegen": "npm:0.86.2"
+ babel-plugin-syntax-hermes-parser: "npm:0.36.0"
+ babel-plugin-transform-flow-enums: "npm:^0.0.2"
+ react-refresh: "npm:^0.14.0"
+ peerDependencies:
+ "@babel/core": "*"
+ checksum: 10c0/12358b3898771cf7340c3fa0199e3608b9aca03fd33d6f10af59d0acef65181d9893acab51c068adc816231df9e5baff360b042963e633fc5f24a73faf6387b2
+ languageName: node
+ linkType: hard
+
"@react-native/codegen@npm:0.80.2":
version: 0.80.2
resolution: "@react-native/codegen@npm:0.80.2"
@@ -5609,6 +5669,23 @@ __metadata:
languageName: node
linkType: hard
+"@react-native/codegen@npm:0.86.2":
+ version: 0.86.2
+ resolution: "@react-native/codegen@npm:0.86.2"
+ dependencies:
+ "@babel/core": "npm:^7.25.2"
+ "@babel/parser": "npm:^7.29.0"
+ hermes-parser: "npm:0.36.0"
+ invariant: "npm:^2.2.4"
+ nullthrows: "npm:^1.1.1"
+ tinyglobby: "npm:^0.2.15"
+ yargs: "npm:^17.6.2"
+ peerDependencies:
+ "@babel/core": "*"
+ checksum: 10c0/3b36b5d99a525195e61c1197d88118c774654de6e644a677b29461bd2b28718a751f1c45ee25efa6b274f27d36efb096a3ec816c5fba1cda1a5f5843e4239a0a
+ languageName: node
+ linkType: hard
+
"@react-native/community-cli-plugin@npm:0.80.2":
version: 0.80.2
resolution: "@react-native/community-cli-plugin@npm:0.80.2"
@@ -5653,6 +5730,29 @@ __metadata:
languageName: node
linkType: hard
+"@react-native/community-cli-plugin@npm:0.86.2":
+ version: 0.86.2
+ resolution: "@react-native/community-cli-plugin@npm:0.86.2"
+ dependencies:
+ "@react-native/dev-middleware": "npm:0.86.2"
+ debug: "npm:^4.4.0"
+ invariant: "npm:^2.2.4"
+ metro: "npm:^0.84.3"
+ metro-config: "npm:^0.84.3"
+ metro-core: "npm:^0.84.3"
+ semver: "npm:^7.1.3"
+ peerDependencies:
+ "@react-native-community/cli": "*"
+ "@react-native/metro-config": 0.86.2
+ peerDependenciesMeta:
+ "@react-native-community/cli":
+ optional: true
+ "@react-native/metro-config":
+ optional: true
+ checksum: 10c0/f86e5fbe759b3538538c5534e78bc262d549fcb4a6e5066b71e512c9d326e787ebc8050d977f768c39671a1e995aa9eebab642bc51cbfc96dfcfac1127e329e6
+ languageName: node
+ linkType: hard
+
"@react-native/debugger-frontend@npm:0.80.2":
version: 0.80.2
resolution: "@react-native/debugger-frontend@npm:0.80.2"
@@ -5667,6 +5767,13 @@ __metadata:
languageName: node
linkType: hard
+"@react-native/debugger-frontend@npm:0.86.2":
+ version: 0.86.2
+ resolution: "@react-native/debugger-frontend@npm:0.86.2"
+ checksum: 10c0/fa3e9c514f7748cc154455fa699351824bde2098bed6c0772892dbbdb91ed3f5d3bbdfbc7fa8ecb17914fbeac05870b3ca462ab33bc5064ecf0539da7a2ed003
+ languageName: node
+ linkType: hard
+
"@react-native/debugger-shell@npm:0.86.0":
version: 0.86.0
resolution: "@react-native/debugger-shell@npm:0.86.0"
@@ -5678,6 +5785,17 @@ __metadata:
languageName: node
linkType: hard
+"@react-native/debugger-shell@npm:0.86.2":
+ version: 0.86.2
+ resolution: "@react-native/debugger-shell@npm:0.86.2"
+ dependencies:
+ cross-spawn: "npm:^7.0.6"
+ debug: "npm:^4.4.0"
+ fb-dotslash: "npm:0.5.8"
+ checksum: 10c0/8aec11d0ccf8c30d968173d5ff024be1b854f600acc48c3f96f1743bfaad708e3da1a49ed672c63fed21c58017dcc4c442b5c456e7e212149295be33bfcf6e9b
+ languageName: node
+ linkType: hard
+
"@react-native/dev-middleware@npm:0.80.2":
version: 0.80.2
resolution: "@react-native/dev-middleware@npm:0.80.2"
@@ -5717,6 +5835,26 @@ __metadata:
languageName: node
linkType: hard
+"@react-native/dev-middleware@npm:0.86.2":
+ version: 0.86.2
+ resolution: "@react-native/dev-middleware@npm:0.86.2"
+ dependencies:
+ "@isaacs/ttlcache": "npm:^1.4.1"
+ "@react-native/debugger-frontend": "npm:0.86.2"
+ "@react-native/debugger-shell": "npm:0.86.2"
+ chrome-launcher: "npm:^0.15.2"
+ chromium-edge-launcher: "npm:^0.3.0"
+ connect: "npm:^3.6.5"
+ debug: "npm:^4.4.0"
+ invariant: "npm:^2.2.4"
+ nullthrows: "npm:^1.1.1"
+ open: "npm:^7.0.3"
+ serve-static: "npm:^1.16.2"
+ ws: "npm:^7.5.10"
+ checksum: 10c0/4e61e17f1cf581b15d570a82401b0c324e6e93ae26661e5dba40579353af122d22dd6d9b4bffefeb5ac4858866bf6a1974b4322f6a560129a6bffb55377bf6c1
+ languageName: node
+ linkType: hard
+
"@react-native/gradle-plugin@npm:0.80.2":
version: 0.80.2
resolution: "@react-native/gradle-plugin@npm:0.80.2"
@@ -5731,6 +5869,13 @@ __metadata:
languageName: node
linkType: hard
+"@react-native/gradle-plugin@npm:0.86.2":
+ version: 0.86.2
+ resolution: "@react-native/gradle-plugin@npm:0.86.2"
+ checksum: 10c0/1c6409d79fddb48d7ff4bc2c59b645e65cfa1a9aa1ecc12861d96af9b4cc5e77b24c6daceb2269461059960617832261761538ab4e3af8b480d29750b2b0fe10
+ languageName: node
+ linkType: hard
+
"@react-native/jest-preset@npm:0.86.0":
version: 0.86.0
resolution: "@react-native/jest-preset@npm:0.86.0"
@@ -5760,6 +5905,13 @@ __metadata:
languageName: node
linkType: hard
+"@react-native/js-polyfills@npm:0.86.2":
+ version: 0.86.2
+ resolution: "@react-native/js-polyfills@npm:0.86.2"
+ checksum: 10c0/184c7d2815f79b55bd960f2f76919841a2e4959d9957b159f4d364319e225bf41fdf5eb14c533cafce0cba2e2e47a8ad734e99d82eba7effeca3ccd1282f1f49
+ languageName: node
+ linkType: hard
+
"@react-native/metro-babel-transformer@npm:0.80.2":
version: 0.80.2
resolution: "@react-native/metro-babel-transformer@npm:0.80.2"
@@ -5774,17 +5926,17 @@ __metadata:
languageName: node
linkType: hard
-"@react-native/metro-babel-transformer@npm:0.86.0":
- version: 0.86.0
- resolution: "@react-native/metro-babel-transformer@npm:0.86.0"
+"@react-native/metro-babel-transformer@npm:0.86.2":
+ version: 0.86.2
+ resolution: "@react-native/metro-babel-transformer@npm:0.86.2"
dependencies:
"@babel/core": "npm:^7.25.2"
- "@react-native/babel-preset": "npm:0.86.0"
+ "@react-native/babel-preset": "npm:0.86.2"
hermes-parser: "npm:0.36.0"
nullthrows: "npm:^1.1.1"
peerDependencies:
"@babel/core": "*"
- checksum: 10c0/8b4ab63d32f28f3663204110d37c50a8dd82eef622d57fb236f3d05b69bdfc1fe277f7572e4cf9135790921922f35fe4aea5f7c183fe17cd2ead19ed8e1db5d1
+ checksum: 10c0/c4841accee16c5cf0054462bc6d11d94cb327192e11934b153f28feb980ebe2079167058805621593b0dd61f0fe8f17cac3340db4b8644797a15893210c0bf7d
languageName: node
linkType: hard
@@ -5800,15 +5952,15 @@ __metadata:
languageName: node
linkType: hard
-"@react-native/metro-config@npm:0.86.0":
- version: 0.86.0
- resolution: "@react-native/metro-config@npm:0.86.0"
+"@react-native/metro-config@npm:0.86.2":
+ version: 0.86.2
+ resolution: "@react-native/metro-config@npm:0.86.2"
dependencies:
- "@react-native/js-polyfills": "npm:0.86.0"
- "@react-native/metro-babel-transformer": "npm:0.86.0"
+ "@react-native/js-polyfills": "npm:0.86.2"
+ "@react-native/metro-babel-transformer": "npm:0.86.2"
metro-config: "npm:^0.84.3"
metro-runtime: "npm:^0.84.3"
- checksum: 10c0/92c043b8e4d959a3d8c0aa56940a9ff455c9de21bb6fe2a799fb5a847e45587d9783c3b55e3254f2b17fa71dfc66fff30ce0a70505e0d699dbbf2c76e0ff539c
+ checksum: 10c0/5e7408301b9a06f9da34598d0fd355ef5bf610721113c3e3d7ee8ff2a9a92ce4218bcda8302b7d3d722e1ae6f4e1db906703fb8ce08466b4b89bdd2fdd4fc111
languageName: node
linkType: hard
@@ -5826,6 +5978,13 @@ __metadata:
languageName: node
linkType: hard
+"@react-native/normalize-colors@npm:0.86.2":
+ version: 0.86.2
+ resolution: "@react-native/normalize-colors@npm:0.86.2"
+ checksum: 10c0/40abd68911f0692cfb6548560bacb48c417556df119e98f06e89ccf1ef29e98d2087af5c958cc052dc9a20bf0da69366779b4b626e56f16a945a3bb41a9ccfbe
+ languageName: node
+ linkType: hard
+
"@react-native/normalize-colors@npm:^0.74.1":
version: 0.74.89
resolution: "@react-native/normalize-colors@npm:0.74.89"
@@ -5840,10 +5999,10 @@ __metadata:
languageName: node
linkType: hard
-"@react-native/typescript-config@npm:0.86.0":
- version: 0.86.0
- resolution: "@react-native/typescript-config@npm:0.86.0"
- checksum: 10c0/66020e6d945e863847639b4932ef22082dad8ba4e345fe785b85987ae18a6cb56b31539c3502731238580ad96a9b1de32fac55e2e245debf693f039ec36fcffc
+"@react-native/typescript-config@npm:0.86.2":
+ version: 0.86.2
+ resolution: "@react-native/typescript-config@npm:0.86.2"
+ checksum: 10c0/473908af62140c9fecb13ea41a6d3f9ae4296cf6d4f481964aebac56f484b56500e07462e2940585001d4dd0fadb102d4c4de871d57e8b981ffffc2d4a83fddb
languageName: node
linkType: hard
@@ -5881,6 +6040,23 @@ __metadata:
languageName: node
linkType: hard
+"@react-native/virtualized-lists@npm:0.86.2":
+ version: 0.86.2
+ resolution: "@react-native/virtualized-lists@npm:0.86.2"
+ dependencies:
+ invariant: "npm:^2.2.4"
+ nullthrows: "npm:^1.1.1"
+ peerDependencies:
+ "@types/react": ^19.2.0
+ react: "*"
+ react-native: 0.86.2
+ peerDependenciesMeta:
+ "@types/react":
+ optional: true
+ checksum: 10c0/ed5625dae2929c726a8311fb0193d301c78fe4af74697bcbed8b5b6f77a915c36dc56615c482601299c15ff7985c3f892939ee34dd04a361467c6d50c7a4a42f
+ languageName: node
+ linkType: hard
+
"@react-navigation/bottom-tabs@npm:^7.18.11":
version: 7.18.11
resolution: "@react-navigation/bottom-tabs@npm:7.18.11"
@@ -12071,6 +12247,13 @@ __metadata:
languageName: node
linkType: hard
+"hermes-compiler@npm:250829098.0.16":
+ version: 250829098.0.16
+ resolution: "hermes-compiler@npm:250829098.0.16"
+ checksum: 10c0/4ea360bb1ce0830346a432a4c3d32faf8fb6e23455659b97f7ac90ba4c8e7ee43d95088d3ab11e8b03bf492b24f9243a05050b04954edba9f9c0d6d552c48527
+ languageName: node
+ linkType: hard
+
"hermes-estree@npm:0.23.1":
version: 0.23.1
resolution: "hermes-estree@npm:0.23.1"
@@ -18238,6 +18421,57 @@ __metadata:
languageName: node
linkType: hard
+"react-native@npm:0.86.2":
+ version: 0.86.2
+ resolution: "react-native@npm:0.86.2"
+ dependencies:
+ "@react-native/assets-registry": "npm:0.86.2"
+ "@react-native/codegen": "npm:0.86.2"
+ "@react-native/community-cli-plugin": "npm:0.86.2"
+ "@react-native/gradle-plugin": "npm:0.86.2"
+ "@react-native/js-polyfills": "npm:0.86.2"
+ "@react-native/normalize-colors": "npm:0.86.2"
+ "@react-native/virtualized-lists": "npm:0.86.2"
+ abort-controller: "npm:^3.0.0"
+ anser: "npm:^1.4.9"
+ ansi-regex: "npm:^5.0.0"
+ babel-plugin-syntax-hermes-parser: "npm:0.36.0"
+ base64-js: "npm:^1.5.1"
+ commander: "npm:^12.0.0"
+ flow-enums-runtime: "npm:^0.0.6"
+ hermes-compiler: "npm:250829098.0.16"
+ invariant: "npm:^2.2.4"
+ memoize-one: "npm:^5.0.0"
+ metro-runtime: "npm:^0.84.3"
+ metro-source-map: "npm:^0.84.3"
+ nullthrows: "npm:^1.1.1"
+ pretty-format: "npm:^29.7.0"
+ promise: "npm:^8.3.0"
+ react-devtools-core: "npm:^6.1.5"
+ react-refresh: "npm:^0.14.0"
+ regenerator-runtime: "npm:^0.13.2"
+ scheduler: "npm:0.27.0"
+ semver: "npm:^7.1.3"
+ stacktrace-parser: "npm:^0.1.10"
+ tinyglobby: "npm:^0.2.15"
+ whatwg-fetch: "npm:^3.0.0"
+ ws: "npm:^7.5.10"
+ yargs: "npm:^17.6.2"
+ peerDependencies:
+ "@react-native/jest-preset": 0.86.2
+ "@types/react": ^19.1.1
+ react: ^19.2.3
+ peerDependenciesMeta:
+ "@react-native/jest-preset":
+ optional: true
+ "@types/react":
+ optional: true
+ bin:
+ react-native: cli.js
+ checksum: 10c0/cb2d91c52f0d1ab18b46c239f801ba86b173126eb53e71aff1e6f22068b58cbfe909f222ff53bdcbfc0d286ddb7448f9c5607b7d6ba0e269a877d014331df337
+ languageName: node
+ linkType: hard
+
"react-refresh@npm:^0.14.0, react-refresh@npm:^0.14.2":
version: 0.14.2
resolution: "react-refresh@npm:0.14.2"
@@ -18876,9 +19110,9 @@ __metadata:
"@react-native-documents/picker": "npm:^12.0.1"
"@react-native-firebase/app": "npm:^24.0.0"
"@react-native-firebase/messaging": "npm:^24.0.0"
- "@react-native/babel-preset": "npm:0.86.0"
- "@react-native/metro-config": "npm:0.86.0"
- "@react-native/typescript-config": "npm:0.86.0"
+ "@react-native/babel-preset": "npm:0.86.2"
+ "@react-native/metro-config": "npm:0.86.2"
+ "@react-native/typescript-config": "npm:0.86.2"
"@react-navigation/bottom-tabs": "npm:^7.18.11"
"@react-navigation/core": "npm:^7.21.8"
"@react-navigation/drawer": "npm:^7.13.2"
@@ -18893,7 +19127,7 @@ __metadata:
emoji-mart: "npm:^5.6.0"
lodash.mergewith: "npm:^4.6.2"
react: "npm:19.2.3"
- react-native: "npm:0.86.0"
+ react-native: "npm:0.86.2"
react-native-blob-util: "npm:^0.24.10"
react-native-gesture-handler: "npm:^3.1.0"
react-native-haptic-feedback: "npm:^3.0.0"
From d8d8a1cf69891e951964790e72c54c3710c34388 Mon Sep 17 00:00:00 2001
From: Ivan Sekovanikj <31964049+isekovanic@users.noreply.github.com>
Date: Wed, 29 Jul 2026 22:26:47 +0200
Subject: [PATCH 2/2] fix: segmented reactions on press (#3746)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
## ๐ฏ Goal
This PR addresses a behavioural change that unfortunately slipped
through with V9 that diverges from what we had in the previous versions.
Namely, for segmented reactions we applied reaction toggling instead of
targeted opening of the reaction info bottom sheet.
This diverged from the other SDKs and so here we align this divergence.
Additionally, we pass `reactionType` to `additionalInfo` and make sure
it's propagated everywhere so that we can easily replicate the behaviour
if needed, like so:
```
{
if (emitter === 'reactionList' && additionalInfo?.reactionType) {
actionHandlers?.toggleReaction(additionalInfo.reactionType as string);
return;
}
defaultHandler?.();
}}
/>
```
## ๐ Implementation details
## ๐จ UI Changes
iOS
Android
## ๐งช Testing
## โ๏ธ Checklist
- [ ] I have signed the [Stream
CLA](https://docs.google.com/forms/d/e/1FAIpQLScFKsKkAJI7mhCr7K9rEIOpqIDThrWxuvxnwUq2XkHyG154vQ/viewform)
(required)
- [ ] PR targets the `develop` branch
- [ ] Documentation is updated
- [ ] New code is tested in main example apps, including all possible
scenarios
- [ ] SampleApp iOS and Android
- [ ] Expo iOS and Android
---
examples/SampleApp/ios/Podfile.lock | 636 +++++++++---------
package/src/components/Message/Message.tsx | 20 +-
.../ReactionList/ReactionListBottom.tsx | 6 -
.../ReactionList/ReactionListItem.tsx | 19 +-
.../ReactionList/ReactionListTop.tsx | 5 -
.../__tests__/ReactionListBottom.test.tsx | 44 +-
.../MessageMenu/MessageUserReactions.tsx | 11 +-
.../__tests__/MessageUserReactions.test.tsx | 8 +
.../messagesContext/MessagesContext.tsx | 16 +
9 files changed, 420 insertions(+), 345 deletions(-)
diff --git a/examples/SampleApp/ios/Podfile.lock b/examples/SampleApp/ios/Podfile.lock
index 5b240bc9de..a3027370a2 100644
--- a/examples/SampleApp/ios/Podfile.lock
+++ b/examples/SampleApp/ios/Podfile.lock
@@ -21,7 +21,7 @@ PODS:
- ReactCommon/turbomodule/core
- ReactNativeDependencies
- Yoga
- - FBLazyVector (0.86.0)
+ - FBLazyVector (0.86.2)
- Firebase/Analytics (12.10.0):
- Firebase/Core
- Firebase/AppDistribution (12.10.0):
@@ -159,9 +159,9 @@ PODS:
- GoogleUtilities/UserDefaults (8.1.2):
- GoogleUtilities/Logger
- GoogleUtilities/Privacy
- - hermes-engine (250829098.0.14):
- - hermes-engine/Pre-built (= 250829098.0.14)
- - hermes-engine/Pre-built (250829098.0.14)
+ - hermes-engine (250829098.0.16):
+ - hermes-engine/Pre-built (= 250829098.0.16)
+ - hermes-engine/Pre-built (250829098.0.16)
- libavif/core (0.11.1)
- libavif/libdav1d (0.11.1):
- libavif/core
@@ -256,34 +256,34 @@ PODS:
- PromisesObjC (2.4.1)
- PromisesSwift (2.4.1):
- PromisesObjC (= 2.4.1)
- - RCTDeprecation (0.86.0)
- - RCTRequired (0.86.0)
- - RCTSwiftUI (0.86.0)
- - RCTSwiftUIWrapper (0.86.0):
+ - RCTDeprecation (0.86.2)
+ - RCTRequired (0.86.2)
+ - RCTSwiftUI (0.86.2)
+ - RCTSwiftUIWrapper (0.86.2):
- RCTSwiftUI
- - RCTTypeSafety (0.86.0):
- - FBLazyVector (= 0.86.0)
- - RCTRequired (= 0.86.0)
- - React-Core (= 0.86.0)
- - React (0.86.0):
- - React-Core (= 0.86.0)
- - React-Core/DevSupport (= 0.86.0)
- - React-Core/RCTWebSocket (= 0.86.0)
- - React-RCTActionSheet (= 0.86.0)
- - React-RCTAnimation (= 0.86.0)
- - React-RCTBlob (= 0.86.0)
- - React-RCTImage (= 0.86.0)
- - React-RCTLinking (= 0.86.0)
- - React-RCTNetwork (= 0.86.0)
- - React-RCTSettings (= 0.86.0)
- - React-RCTText (= 0.86.0)
- - React-RCTVibration (= 0.86.0)
- - React-callinvoker (0.86.0)
- - React-Core (0.86.0):
+ - RCTTypeSafety (0.86.2):
+ - FBLazyVector (= 0.86.2)
+ - RCTRequired (= 0.86.2)
+ - React-Core (= 0.86.2)
+ - React (0.86.2):
+ - React-Core (= 0.86.2)
+ - React-Core/DevSupport (= 0.86.2)
+ - React-Core/RCTWebSocket (= 0.86.2)
+ - React-RCTActionSheet (= 0.86.2)
+ - React-RCTAnimation (= 0.86.2)
+ - React-RCTBlob (= 0.86.2)
+ - React-RCTImage (= 0.86.2)
+ - React-RCTLinking (= 0.86.2)
+ - React-RCTNetwork (= 0.86.2)
+ - React-RCTSettings (= 0.86.2)
+ - React-RCTText (= 0.86.2)
+ - React-RCTVibration (= 0.86.2)
+ - React-callinvoker (0.86.2)
+ - React-Core (0.86.2):
- hermes-engine
- RCTDeprecation
- React-Core-prebuilt
- - React-Core/Default (= 0.86.0)
+ - React-Core/Default (= 0.86.2)
- React-cxxreact
- React-featureflags
- React-hermes
@@ -300,7 +300,7 @@ PODS:
- Yoga
- React-Core-prebuilt (0.86.0):
- ReactNativeDependencies
- - React-Core/CoreModulesHeaders (0.86.0):
+ - React-Core/CoreModulesHeaders (0.86.2):
- hermes-engine
- RCTDeprecation
- React-Core-prebuilt
@@ -319,7 +319,7 @@ PODS:
- React-utils
- ReactNativeDependencies
- Yoga
- - React-Core/Default (0.86.0):
+ - React-Core/Default (0.86.2):
- hermes-engine
- RCTDeprecation
- React-Core-prebuilt
@@ -337,12 +337,12 @@ PODS:
- React-utils
- ReactNativeDependencies
- Yoga
- - React-Core/DevSupport (0.86.0):
+ - React-Core/DevSupport (0.86.2):
- hermes-engine
- RCTDeprecation
- React-Core-prebuilt
- - React-Core/Default (= 0.86.0)
- - React-Core/RCTWebSocket (= 0.86.0)
+ - React-Core/Default (= 0.86.2)
+ - React-Core/RCTWebSocket (= 0.86.2)
- React-cxxreact
- React-featureflags
- React-hermes
@@ -357,7 +357,7 @@ PODS:
- React-utils
- ReactNativeDependencies
- Yoga
- - React-Core/RCTActionSheetHeaders (0.86.0):
+ - React-Core/RCTActionSheetHeaders (0.86.2):
- hermes-engine
- RCTDeprecation
- React-Core-prebuilt
@@ -376,7 +376,7 @@ PODS:
- React-utils
- ReactNativeDependencies
- Yoga
- - React-Core/RCTAnimationHeaders (0.86.0):
+ - React-Core/RCTAnimationHeaders (0.86.2):
- hermes-engine
- RCTDeprecation
- React-Core-prebuilt
@@ -395,7 +395,7 @@ PODS:
- React-utils
- ReactNativeDependencies
- Yoga
- - React-Core/RCTBlobHeaders (0.86.0):
+ - React-Core/RCTBlobHeaders (0.86.2):
- hermes-engine
- RCTDeprecation
- React-Core-prebuilt
@@ -414,7 +414,7 @@ PODS:
- React-utils
- ReactNativeDependencies
- Yoga
- - React-Core/RCTImageHeaders (0.86.0):
+ - React-Core/RCTImageHeaders (0.86.2):
- hermes-engine
- RCTDeprecation
- React-Core-prebuilt
@@ -433,7 +433,7 @@ PODS:
- React-utils
- ReactNativeDependencies
- Yoga
- - React-Core/RCTLinkingHeaders (0.86.0):
+ - React-Core/RCTLinkingHeaders (0.86.2):
- hermes-engine
- RCTDeprecation
- React-Core-prebuilt
@@ -452,7 +452,7 @@ PODS:
- React-utils
- ReactNativeDependencies
- Yoga
- - React-Core/RCTNetworkHeaders (0.86.0):
+ - React-Core/RCTNetworkHeaders (0.86.2):
- hermes-engine
- RCTDeprecation
- React-Core-prebuilt
@@ -471,7 +471,7 @@ PODS:
- React-utils
- ReactNativeDependencies
- Yoga
- - React-Core/RCTSettingsHeaders (0.86.0):
+ - React-Core/RCTSettingsHeaders (0.86.2):
- hermes-engine
- RCTDeprecation
- React-Core-prebuilt
@@ -490,7 +490,7 @@ PODS:
- React-utils
- ReactNativeDependencies
- Yoga
- - React-Core/RCTTextHeaders (0.86.0):
+ - React-Core/RCTTextHeaders (0.86.2):
- hermes-engine
- RCTDeprecation
- React-Core-prebuilt
@@ -509,7 +509,7 @@ PODS:
- React-utils
- ReactNativeDependencies
- Yoga
- - React-Core/RCTVibrationHeaders (0.86.0):
+ - React-Core/RCTVibrationHeaders (0.86.2):
- hermes-engine
- RCTDeprecation
- React-Core-prebuilt
@@ -528,11 +528,11 @@ PODS:
- React-utils
- ReactNativeDependencies
- Yoga
- - React-Core/RCTWebSocket (0.86.0):
+ - React-Core/RCTWebSocket (0.86.2):
- hermes-engine
- RCTDeprecation
- React-Core-prebuilt
- - React-Core/Default (= 0.86.0)
+ - React-Core/Default (= 0.86.2)
- React-cxxreact
- React-featureflags
- React-hermes
@@ -547,43 +547,43 @@ PODS:
- React-utils
- ReactNativeDependencies
- Yoga
- - React-CoreModules (0.86.0):
- - RCTTypeSafety (= 0.86.0)
+ - React-CoreModules (0.86.2):
+ - RCTTypeSafety (= 0.86.2)
- React-Core-prebuilt
- - React-Core/CoreModulesHeaders (= 0.86.0)
+ - React-Core/CoreModulesHeaders (= 0.86.2)
- React-debug
- React-featureflags
- - React-jsi (= 0.86.0)
+ - React-jsi (= 0.86.2)
- React-jsinspector
- React-jsinspectorcdp
- React-jsinspectortracing
- React-NativeModulesApple
- React-RCTBlob
- React-RCTFBReactNativeSpec
- - React-RCTImage (= 0.86.0)
+ - React-RCTImage (= 0.86.2)
- React-runtimeexecutor
- React-utils
- ReactCommon
- ReactNativeDependencies
- - React-cxxreact (0.86.0):
+ - React-cxxreact (0.86.2):
- hermes-engine
- - React-callinvoker (= 0.86.0)
+ - React-callinvoker (= 0.86.2)
- React-Core-prebuilt
- - React-debug (= 0.86.0)
- - React-jsi (= 0.86.0)
+ - React-debug (= 0.86.2)
+ - React-jsi (= 0.86.2)
- React-jsinspector
- React-jsinspectorcdp
- React-jsinspectortracing
- - React-logger (= 0.86.0)
- - React-perflogger (= 0.86.0)
+ - React-logger (= 0.86.2)
+ - React-perflogger (= 0.86.2)
- React-runtimeexecutor
- - React-timing (= 0.86.0)
+ - React-timing (= 0.86.2)
- React-utils
- ReactNativeDependencies
- - React-debug (0.86.0):
- - React-debug/redbox (= 0.86.0)
- - React-debug/redbox (0.86.0)
- - React-defaultsnativemodule (0.86.0):
+ - React-debug (0.86.2):
+ - React-debug/redbox (= 0.86.2)
+ - React-debug/redbox (0.86.2)
+ - React-defaultsnativemodule (0.86.2):
- hermes-engine
- React-Core-prebuilt
- React-domnativemodule
@@ -601,7 +601,7 @@ PODS:
- React-webperformancenativemodule
- ReactNativeDependencies
- Yoga
- - React-domnativemodule (0.86.0):
+ - React-domnativemodule (0.86.2):
- hermes-engine
- React-Core-prebuilt
- React-Fabric
@@ -615,7 +615,7 @@ PODS:
- ReactCommon/turbomodule/core
- ReactNativeDependencies
- Yoga
- - React-Fabric (0.86.0):
+ - React-Fabric (0.86.2):
- hermes-engine
- RCTRequired
- RCTTypeSafety
@@ -623,25 +623,25 @@ PODS:
- React-Core-prebuilt
- React-cxxreact
- React-debug
- - React-Fabric/animated (= 0.86.0)
- - React-Fabric/animationbackend (= 0.86.0)
- - React-Fabric/animations (= 0.86.0)
- - React-Fabric/attributedstring (= 0.86.0)
- - React-Fabric/bridging (= 0.86.0)
- - React-Fabric/componentregistry (= 0.86.0)
- - React-Fabric/componentregistrynative (= 0.86.0)
- - React-Fabric/components (= 0.86.0)
- - React-Fabric/consistency (= 0.86.0)
- - React-Fabric/core (= 0.86.0)
- - React-Fabric/dom (= 0.86.0)
- - React-Fabric/imagemanager (= 0.86.0)
- - React-Fabric/leakchecker (= 0.86.0)
- - React-Fabric/mounting (= 0.86.0)
- - React-Fabric/observers (= 0.86.0)
- - React-Fabric/scheduler (= 0.86.0)
- - React-Fabric/telemetry (= 0.86.0)
- - React-Fabric/uimanager (= 0.86.0)
- - React-Fabric/viewtransition (= 0.86.0)
+ - React-Fabric/animated (= 0.86.2)
+ - React-Fabric/animationbackend (= 0.86.2)
+ - React-Fabric/animations (= 0.86.2)
+ - React-Fabric/attributedstring (= 0.86.2)
+ - React-Fabric/bridging (= 0.86.2)
+ - React-Fabric/componentregistry (= 0.86.2)
+ - React-Fabric/componentregistrynative (= 0.86.2)
+ - React-Fabric/components (= 0.86.2)
+ - React-Fabric/consistency (= 0.86.2)
+ - React-Fabric/core (= 0.86.2)
+ - React-Fabric/dom (= 0.86.2)
+ - React-Fabric/imagemanager (= 0.86.2)
+ - React-Fabric/leakchecker (= 0.86.2)
+ - React-Fabric/mounting (= 0.86.2)
+ - React-Fabric/observers (= 0.86.2)
+ - React-Fabric/scheduler (= 0.86.2)
+ - React-Fabric/telemetry (= 0.86.2)
+ - React-Fabric/uimanager (= 0.86.2)
+ - React-Fabric/viewtransition (= 0.86.2)
- React-featureflags
- React-graphics
- React-jsi
@@ -653,7 +653,7 @@ PODS:
- React-utils
- ReactCommon/turbomodule/core
- ReactNativeDependencies
- - React-Fabric/animated (0.86.0):
+ - React-Fabric/animated (0.86.2):
- hermes-engine
- RCTRequired
- RCTTypeSafety
@@ -673,7 +673,7 @@ PODS:
- React-utils
- ReactCommon/turbomodule/core
- ReactNativeDependencies
- - React-Fabric/animationbackend (0.86.0):
+ - React-Fabric/animationbackend (0.86.2):
- hermes-engine
- RCTRequired
- RCTTypeSafety
@@ -692,7 +692,7 @@ PODS:
- React-utils
- ReactCommon/turbomodule/core
- ReactNativeDependencies
- - React-Fabric/animations (0.86.0):
+ - React-Fabric/animations (0.86.2):
- hermes-engine
- RCTRequired
- RCTTypeSafety
@@ -711,7 +711,7 @@ PODS:
- React-utils
- ReactCommon/turbomodule/core
- ReactNativeDependencies
- - React-Fabric/attributedstring (0.86.0):
+ - React-Fabric/attributedstring (0.86.2):
- hermes-engine
- RCTRequired
- RCTTypeSafety
@@ -730,7 +730,7 @@ PODS:
- React-utils
- ReactCommon/turbomodule/core
- ReactNativeDependencies
- - React-Fabric/bridging (0.86.0):
+ - React-Fabric/bridging (0.86.2):
- hermes-engine
- RCTRequired
- RCTTypeSafety
@@ -749,7 +749,7 @@ PODS:
- React-utils
- ReactCommon/turbomodule/core
- ReactNativeDependencies
- - React-Fabric/componentregistry (0.86.0):
+ - React-Fabric/componentregistry (0.86.2):
- hermes-engine
- RCTRequired
- RCTTypeSafety
@@ -768,7 +768,7 @@ PODS:
- React-utils
- ReactCommon/turbomodule/core
- ReactNativeDependencies
- - React-Fabric/componentregistrynative (0.86.0):
+ - React-Fabric/componentregistrynative (0.86.2):
- hermes-engine
- RCTRequired
- RCTTypeSafety
@@ -787,7 +787,7 @@ PODS:
- React-utils
- ReactCommon/turbomodule/core
- ReactNativeDependencies
- - React-Fabric/components (0.86.0):
+ - React-Fabric/components (0.86.2):
- hermes-engine
- RCTRequired
- RCTTypeSafety
@@ -795,10 +795,10 @@ PODS:
- React-Core-prebuilt
- React-cxxreact
- React-debug
- - React-Fabric/components/legacyviewmanagerinterop (= 0.86.0)
- - React-Fabric/components/root (= 0.86.0)
- - React-Fabric/components/scrollview (= 0.86.0)
- - React-Fabric/components/view (= 0.86.0)
+ - React-Fabric/components/legacyviewmanagerinterop (= 0.86.2)
+ - React-Fabric/components/root (= 0.86.2)
+ - React-Fabric/components/scrollview (= 0.86.2)
+ - React-Fabric/components/view (= 0.86.2)
- React-featureflags
- React-graphics
- React-jsi
@@ -810,7 +810,7 @@ PODS:
- React-utils
- ReactCommon/turbomodule/core
- ReactNativeDependencies
- - React-Fabric/components/legacyviewmanagerinterop (0.86.0):
+ - React-Fabric/components/legacyviewmanagerinterop (0.86.2):
- hermes-engine
- RCTRequired
- RCTTypeSafety
@@ -829,7 +829,7 @@ PODS:
- React-utils
- ReactCommon/turbomodule/core
- ReactNativeDependencies
- - React-Fabric/components/root (0.86.0):
+ - React-Fabric/components/root (0.86.2):
- hermes-engine
- RCTRequired
- RCTTypeSafety
@@ -848,7 +848,7 @@ PODS:
- React-utils
- ReactCommon/turbomodule/core
- ReactNativeDependencies
- - React-Fabric/components/scrollview (0.86.0):
+ - React-Fabric/components/scrollview (0.86.2):
- hermes-engine
- RCTRequired
- RCTTypeSafety
@@ -867,7 +867,7 @@ PODS:
- React-utils
- ReactCommon/turbomodule/core
- ReactNativeDependencies
- - React-Fabric/components/view (0.86.0):
+ - React-Fabric/components/view (0.86.2):
- hermes-engine
- RCTRequired
- RCTTypeSafety
@@ -888,7 +888,7 @@ PODS:
- ReactCommon/turbomodule/core
- ReactNativeDependencies
- Yoga
- - React-Fabric/consistency (0.86.0):
+ - React-Fabric/consistency (0.86.2):
- hermes-engine
- RCTRequired
- RCTTypeSafety
@@ -907,7 +907,7 @@ PODS:
- React-utils
- ReactCommon/turbomodule/core
- ReactNativeDependencies
- - React-Fabric/core (0.86.0):
+ - React-Fabric/core (0.86.2):
- hermes-engine
- RCTRequired
- RCTTypeSafety
@@ -926,7 +926,7 @@ PODS:
- React-utils
- ReactCommon/turbomodule/core
- ReactNativeDependencies
- - React-Fabric/dom (0.86.0):
+ - React-Fabric/dom (0.86.2):
- hermes-engine
- RCTRequired
- RCTTypeSafety
@@ -945,7 +945,7 @@ PODS:
- React-utils
- ReactCommon/turbomodule/core
- ReactNativeDependencies
- - React-Fabric/imagemanager (0.86.0):
+ - React-Fabric/imagemanager (0.86.2):
- hermes-engine
- RCTRequired
- RCTTypeSafety
@@ -964,7 +964,7 @@ PODS:
- React-utils
- ReactCommon/turbomodule/core
- ReactNativeDependencies
- - React-Fabric/leakchecker (0.86.0):
+ - React-Fabric/leakchecker (0.86.2):
- hermes-engine
- RCTRequired
- RCTTypeSafety
@@ -983,7 +983,7 @@ PODS:
- React-utils
- ReactCommon/turbomodule/core
- ReactNativeDependencies
- - React-Fabric/mounting (0.86.0):
+ - React-Fabric/mounting (0.86.2):
- hermes-engine
- RCTRequired
- RCTTypeSafety
@@ -1003,7 +1003,7 @@ PODS:
- React-utils
- ReactCommon/turbomodule/core
- ReactNativeDependencies
- - React-Fabric/observers (0.86.0):
+ - React-Fabric/observers (0.86.2):
- hermes-engine
- RCTRequired
- RCTTypeSafety
@@ -1011,9 +1011,9 @@ PODS:
- React-Core-prebuilt
- React-cxxreact
- React-debug
- - React-Fabric/observers/events (= 0.86.0)
- - React-Fabric/observers/intersection (= 0.86.0)
- - React-Fabric/observers/mutation (= 0.86.0)
+ - React-Fabric/observers/events (= 0.86.2)
+ - React-Fabric/observers/intersection (= 0.86.2)
+ - React-Fabric/observers/mutation (= 0.86.2)
- React-featureflags
- React-graphics
- React-jsi
@@ -1025,7 +1025,7 @@ PODS:
- React-utils
- ReactCommon/turbomodule/core
- ReactNativeDependencies
- - React-Fabric/observers/events (0.86.0):
+ - React-Fabric/observers/events (0.86.2):
- hermes-engine
- RCTRequired
- RCTTypeSafety
@@ -1044,7 +1044,7 @@ PODS:
- React-utils
- ReactCommon/turbomodule/core
- ReactNativeDependencies
- - React-Fabric/observers/intersection (0.86.0):
+ - React-Fabric/observers/intersection (0.86.2):
- hermes-engine
- RCTRequired
- RCTTypeSafety
@@ -1063,7 +1063,7 @@ PODS:
- React-utils
- ReactCommon/turbomodule/core
- ReactNativeDependencies
- - React-Fabric/observers/mutation (0.86.0):
+ - React-Fabric/observers/mutation (0.86.2):
- hermes-engine
- RCTRequired
- RCTTypeSafety
@@ -1082,7 +1082,7 @@ PODS:
- React-utils
- ReactCommon/turbomodule/core
- ReactNativeDependencies
- - React-Fabric/scheduler (0.86.0):
+ - React-Fabric/scheduler (0.86.2):
- hermes-engine
- RCTRequired
- RCTTypeSafety
@@ -1106,7 +1106,7 @@ PODS:
- React-utils
- ReactCommon/turbomodule/core
- ReactNativeDependencies
- - React-Fabric/telemetry (0.86.0):
+ - React-Fabric/telemetry (0.86.2):
- hermes-engine
- RCTRequired
- RCTTypeSafety
@@ -1125,7 +1125,7 @@ PODS:
- React-utils
- ReactCommon/turbomodule/core
- ReactNativeDependencies
- - React-Fabric/uimanager (0.86.0):
+ - React-Fabric/uimanager (0.86.2):
- hermes-engine
- RCTRequired
- RCTTypeSafety
@@ -1133,7 +1133,7 @@ PODS:
- React-Core-prebuilt
- React-cxxreact
- React-debug
- - React-Fabric/uimanager/consistency (= 0.86.0)
+ - React-Fabric/uimanager/consistency (= 0.86.2)
- React-featureflags
- React-graphics
- React-jsi
@@ -1146,7 +1146,7 @@ PODS:
- React-utils
- ReactCommon/turbomodule/core
- ReactNativeDependencies
- - React-Fabric/uimanager/consistency (0.86.0):
+ - React-Fabric/uimanager/consistency (0.86.2):
- hermes-engine
- RCTRequired
- RCTTypeSafety
@@ -1166,7 +1166,7 @@ PODS:
- React-utils
- ReactCommon/turbomodule/core
- ReactNativeDependencies
- - React-Fabric/viewtransition (0.86.0):
+ - React-Fabric/viewtransition (0.86.2):
- hermes-engine
- RCTRequired
- RCTTypeSafety
@@ -1185,7 +1185,7 @@ PODS:
- React-utils
- ReactCommon/turbomodule/core
- ReactNativeDependencies
- - React-FabricComponents (0.86.0):
+ - React-FabricComponents (0.86.2):
- hermes-engine
- RCTRequired
- RCTTypeSafety
@@ -1194,8 +1194,8 @@ PODS:
- React-cxxreact
- React-debug
- React-Fabric
- - React-FabricComponents/components (= 0.86.0)
- - React-FabricComponents/textlayoutmanager (= 0.86.0)
+ - React-FabricComponents/components (= 0.86.2)
+ - React-FabricComponents/textlayoutmanager (= 0.86.2)
- React-featureflags
- React-graphics
- React-jsi
@@ -1208,7 +1208,7 @@ PODS:
- ReactCommon/turbomodule/core
- ReactNativeDependencies
- Yoga
- - React-FabricComponents/components (0.86.0):
+ - React-FabricComponents/components (0.86.2):
- hermes-engine
- RCTRequired
- RCTTypeSafety
@@ -1217,17 +1217,17 @@ PODS:
- React-cxxreact
- React-debug
- React-Fabric
- - React-FabricComponents/components/inputaccessory (= 0.86.0)
- - React-FabricComponents/components/iostextinput (= 0.86.0)
- - React-FabricComponents/components/modal (= 0.86.0)
- - React-FabricComponents/components/rncore (= 0.86.0)
- - React-FabricComponents/components/safeareaview (= 0.86.0)
- - React-FabricComponents/components/scrollview (= 0.86.0)
- - React-FabricComponents/components/switch (= 0.86.0)
- - React-FabricComponents/components/text (= 0.86.0)
- - React-FabricComponents/components/textinput (= 0.86.0)
- - React-FabricComponents/components/unimplementedview (= 0.86.0)
- - React-FabricComponents/components/virtualview (= 0.86.0)
+ - React-FabricComponents/components/inputaccessory (= 0.86.2)
+ - React-FabricComponents/components/iostextinput (= 0.86.2)
+ - React-FabricComponents/components/modal (= 0.86.2)
+ - React-FabricComponents/components/rncore (= 0.86.2)
+ - React-FabricComponents/components/safeareaview (= 0.86.2)
+ - React-FabricComponents/components/scrollview (= 0.86.2)
+ - React-FabricComponents/components/switch (= 0.86.2)
+ - React-FabricComponents/components/text (= 0.86.2)
+ - React-FabricComponents/components/textinput (= 0.86.2)
+ - React-FabricComponents/components/unimplementedview (= 0.86.2)
+ - React-FabricComponents/components/virtualview (= 0.86.2)
- React-featureflags
- React-graphics
- React-jsi
@@ -1240,7 +1240,7 @@ PODS:
- ReactCommon/turbomodule/core
- ReactNativeDependencies
- Yoga
- - React-FabricComponents/components/inputaccessory (0.86.0):
+ - React-FabricComponents/components/inputaccessory (0.86.2):
- hermes-engine
- RCTRequired
- RCTTypeSafety
@@ -1261,7 +1261,7 @@ PODS:
- ReactCommon/turbomodule/core
- ReactNativeDependencies
- Yoga
- - React-FabricComponents/components/iostextinput (0.86.0):
+ - React-FabricComponents/components/iostextinput (0.86.2):
- hermes-engine
- RCTRequired
- RCTTypeSafety
@@ -1282,7 +1282,7 @@ PODS:
- ReactCommon/turbomodule/core
- ReactNativeDependencies
- Yoga
- - React-FabricComponents/components/modal (0.86.0):
+ - React-FabricComponents/components/modal (0.86.2):
- hermes-engine
- RCTRequired
- RCTTypeSafety
@@ -1303,7 +1303,7 @@ PODS:
- ReactCommon/turbomodule/core
- ReactNativeDependencies
- Yoga
- - React-FabricComponents/components/rncore (0.86.0):
+ - React-FabricComponents/components/rncore (0.86.2):
- hermes-engine
- RCTRequired
- RCTTypeSafety
@@ -1324,7 +1324,7 @@ PODS:
- ReactCommon/turbomodule/core
- ReactNativeDependencies
- Yoga
- - React-FabricComponents/components/safeareaview (0.86.0):
+ - React-FabricComponents/components/safeareaview (0.86.2):
- hermes-engine
- RCTRequired
- RCTTypeSafety
@@ -1345,7 +1345,7 @@ PODS:
- ReactCommon/turbomodule/core
- ReactNativeDependencies
- Yoga
- - React-FabricComponents/components/scrollview (0.86.0):
+ - React-FabricComponents/components/scrollview (0.86.2):
- hermes-engine
- RCTRequired
- RCTTypeSafety
@@ -1366,7 +1366,7 @@ PODS:
- ReactCommon/turbomodule/core
- ReactNativeDependencies
- Yoga
- - React-FabricComponents/components/switch (0.86.0):
+ - React-FabricComponents/components/switch (0.86.2):
- hermes-engine
- RCTRequired
- RCTTypeSafety
@@ -1387,7 +1387,7 @@ PODS:
- ReactCommon/turbomodule/core
- ReactNativeDependencies
- Yoga
- - React-FabricComponents/components/text (0.86.0):
+ - React-FabricComponents/components/text (0.86.2):
- hermes-engine
- RCTRequired
- RCTTypeSafety
@@ -1408,7 +1408,7 @@ PODS:
- ReactCommon/turbomodule/core
- ReactNativeDependencies
- Yoga
- - React-FabricComponents/components/textinput (0.86.0):
+ - React-FabricComponents/components/textinput (0.86.2):
- hermes-engine
- RCTRequired
- RCTTypeSafety
@@ -1429,7 +1429,7 @@ PODS:
- ReactCommon/turbomodule/core
- ReactNativeDependencies
- Yoga
- - React-FabricComponents/components/unimplementedview (0.86.0):
+ - React-FabricComponents/components/unimplementedview (0.86.2):
- hermes-engine
- RCTRequired
- RCTTypeSafety
@@ -1450,7 +1450,7 @@ PODS:
- ReactCommon/turbomodule/core
- ReactNativeDependencies
- Yoga
- - React-FabricComponents/components/virtualview (0.86.0):
+ - React-FabricComponents/components/virtualview (0.86.2):
- hermes-engine
- RCTRequired
- RCTTypeSafety
@@ -1471,7 +1471,7 @@ PODS:
- ReactCommon/turbomodule/core
- ReactNativeDependencies
- Yoga
- - React-FabricComponents/textlayoutmanager (0.86.0):
+ - React-FabricComponents/textlayoutmanager (0.86.2):
- hermes-engine
- RCTRequired
- RCTTypeSafety
@@ -1492,27 +1492,27 @@ PODS:
- ReactCommon/turbomodule/core
- ReactNativeDependencies
- Yoga
- - React-FabricImage (0.86.0):
+ - React-FabricImage (0.86.2):
- hermes-engine
- - RCTRequired (= 0.86.0)
- - RCTTypeSafety (= 0.86.0)
+ - RCTRequired (= 0.86.2)
+ - RCTTypeSafety (= 0.86.2)
- React-Core-prebuilt
- React-Fabric
- React-featureflags
- React-graphics
- React-ImageManager
- React-jsi
- - React-jsiexecutor (= 0.86.0)
+ - React-jsiexecutor (= 0.86.2)
- React-logger
- React-rendererdebug
- React-utils
- ReactCommon
- ReactNativeDependencies
- Yoga
- - React-featureflags (0.86.0):
+ - React-featureflags (0.86.2):
- React-Core-prebuilt
- ReactNativeDependencies
- - React-featureflagsnativemodule (0.86.0):
+ - React-featureflagsnativemodule (0.86.2):
- hermes-engine
- React-Core-prebuilt
- React-featureflags
@@ -1521,7 +1521,7 @@ PODS:
- React-RCTFBReactNativeSpec
- ReactCommon/turbomodule/core
- ReactNativeDependencies
- - React-graphics (0.86.0):
+ - React-graphics (0.86.2):
- hermes-engine
- React-Core-prebuilt
- React-featureflags
@@ -1530,21 +1530,21 @@ PODS:
- React-rendererdebug
- React-utils
- ReactNativeDependencies
- - React-hermes (0.86.0):
+ - React-hermes (0.86.2):
- hermes-engine
- React-Core-prebuilt
- - React-cxxreact (= 0.86.0)
+ - React-cxxreact (= 0.86.2)
- React-jsi
- - React-jsiexecutor (= 0.86.0)
+ - React-jsiexecutor (= 0.86.2)
- React-jsinspector
- React-jsinspectorcdp
- React-jsinspectortracing
- React-jsitooling
- React-oscompat
- - React-perflogger (= 0.86.0)
+ - React-perflogger (= 0.86.2)
- React-runtimeexecutor
- ReactNativeDependencies
- - React-idlecallbacksnativemodule (0.86.0):
+ - React-idlecallbacksnativemodule (0.86.2):
- hermes-engine
- React-Core-prebuilt
- React-jsi
@@ -1554,7 +1554,7 @@ PODS:
- React-runtimescheduler
- ReactCommon/turbomodule/core
- ReactNativeDependencies
- - React-ImageManager (0.86.0):
+ - React-ImageManager (0.86.2):
- React-Core-prebuilt
- React-Core/Default
- React-debug
@@ -1563,7 +1563,7 @@ PODS:
- React-rendererdebug
- React-utils
- ReactNativeDependencies
- - React-intersectionobservernativemodule (0.86.0):
+ - React-intersectionobservernativemodule (0.86.2):
- hermes-engine
- React-Core-prebuilt
- React-cxxreact
@@ -1578,7 +1578,7 @@ PODS:
- ReactCommon/turbomodule/core
- ReactNativeDependencies
- Yoga
- - React-jserrorhandler (0.86.0):
+ - React-jserrorhandler (0.86.2):
- hermes-engine
- React-Core-prebuilt
- React-cxxreact
@@ -1587,11 +1587,11 @@ PODS:
- React-jsi
- ReactCommon/turbomodule/bridging
- ReactNativeDependencies
- - React-jsi (0.86.0):
+ - React-jsi (0.86.2):
- hermes-engine
- React-Core-prebuilt
- ReactNativeDependencies
- - React-jsiexecutor (0.86.0):
+ - React-jsiexecutor (0.86.2):
- hermes-engine
- React-Core-prebuilt
- React-cxxreact
@@ -1606,7 +1606,7 @@ PODS:
- React-runtimeexecutor
- React-utils
- ReactNativeDependencies
- - React-jsinspector (0.86.0):
+ - React-jsinspector (0.86.2):
- hermes-engine
- React-Core-prebuilt
- React-featureflags
@@ -1615,18 +1615,18 @@ PODS:
- React-jsinspectornetwork
- React-jsinspectortracing
- React-oscompat
- - React-perflogger (= 0.86.0)
+ - React-perflogger (= 0.86.2)
- React-runtimeexecutor
- React-utils
- ReactNativeDependencies
- - React-jsinspectorcdp (0.86.0):
+ - React-jsinspectorcdp (0.86.2):
- React-Core-prebuilt
- ReactNativeDependencies
- - React-jsinspectornetwork (0.86.0):
+ - React-jsinspectornetwork (0.86.2):
- React-Core-prebuilt
- React-jsinspectorcdp
- ReactNativeDependencies
- - React-jsinspectortracing (0.86.0):
+ - React-jsinspectortracing (0.86.2):
- hermes-engine
- React-Core-prebuilt
- React-jsi
@@ -1635,28 +1635,28 @@ PODS:
- React-timing
- React-utils
- ReactNativeDependencies
- - React-jsitooling (0.86.0):
+ - React-jsitooling (0.86.2):
- hermes-engine
- React-Core-prebuilt
- - React-cxxreact (= 0.86.0)
+ - React-cxxreact (= 0.86.2)
- React-debug
- - React-jsi (= 0.86.0)
+ - React-jsi (= 0.86.2)
- React-jsinspector
- React-jsinspectorcdp
- React-jsinspectortracing
- React-runtimeexecutor
- React-utils
- ReactNativeDependencies
- - React-jsitracing (0.86.0):
+ - React-jsitracing (0.86.2):
- React-jsi
- - React-logger (0.86.0):
+ - React-logger (0.86.2):
- React-Core-prebuilt
- ReactNativeDependencies
- - React-Mapbuffer (0.86.0):
+ - React-Mapbuffer (0.86.2):
- React-Core-prebuilt
- React-debug
- ReactNativeDependencies
- - React-microtasksnativemodule (0.86.0):
+ - React-microtasksnativemodule (0.86.2):
- hermes-engine
- React-Core-prebuilt
- React-jsi
@@ -1664,7 +1664,7 @@ PODS:
- React-RCTFBReactNativeSpec
- ReactCommon/turbomodule/core
- ReactNativeDependencies
- - React-mutationobservernativemodule (0.86.0):
+ - React-mutationobservernativemodule (0.86.2):
- hermes-engine
- React-Core-prebuilt
- React-cxxreact
@@ -2017,7 +2017,7 @@ PODS:
- ReactCommon/turbomodule/core
- ReactNativeDependencies
- Yoga
- - React-NativeModulesApple (0.86.0):
+ - React-NativeModulesApple (0.86.2):
- hermes-engine
- React-callinvoker
- React-Core
@@ -2032,18 +2032,18 @@ PODS:
- ReactCommon/turbomodule/bridging
- ReactCommon/turbomodule/core
- ReactNativeDependencies
- - React-networking (0.86.0):
+ - React-networking (0.86.2):
- React-Core-prebuilt
- React-jsinspectornetwork
- React-jsinspectortracing
- React-performancetimeline
- React-timing
- ReactNativeDependencies
- - React-oscompat (0.86.0)
- - React-perflogger (0.86.0):
+ - React-oscompat (0.86.2)
+ - React-perflogger (0.86.2):
- React-Core-prebuilt
- ReactNativeDependencies
- - React-performancecdpmetrics (0.86.0):
+ - React-performancecdpmetrics (0.86.2):
- hermes-engine
- React-Core-prebuilt
- React-jsi
@@ -2051,7 +2051,7 @@ PODS:
- React-runtimeexecutor
- React-timing
- ReactNativeDependencies
- - React-performancetimeline (0.86.0):
+ - React-performancetimeline (0.86.2):
- React-Core-prebuilt
- React-featureflags
- React-jsinspector
@@ -2059,9 +2059,9 @@ PODS:
- React-perflogger
- React-timing
- ReactNativeDependencies
- - React-RCTActionSheet (0.86.0):
- - React-Core/RCTActionSheetHeaders (= 0.86.0)
- - React-RCTAnimation (0.86.0):
+ - React-RCTActionSheet (0.86.2):
+ - React-Core/RCTActionSheetHeaders (= 0.86.2)
+ - React-RCTAnimation (0.86.2):
- RCTTypeSafety
- React-Core-prebuilt
- React-Core/RCTAnimationHeaders
@@ -2072,7 +2072,7 @@ PODS:
- React-RCTFBReactNativeSpec
- ReactCommon
- ReactNativeDependencies
- - React-RCTAppDelegate (0.86.0):
+ - React-RCTAppDelegate (0.86.2):
- hermes-engine
- RCTRequired
- RCTTypeSafety
@@ -2100,7 +2100,7 @@ PODS:
- React-utils
- ReactCommon
- ReactNativeDependencies
- - React-RCTBlob (0.86.0):
+ - React-RCTBlob (0.86.2):
- hermes-engine
- React-Core-prebuilt
- React-Core/RCTBlobHeaders
@@ -2113,7 +2113,7 @@ PODS:
- React-RCTNetwork
- ReactCommon
- ReactNativeDependencies
- - React-RCTFabric (0.86.0):
+ - React-RCTFabric (0.86.2):
- hermes-engine
- RCTSwiftUIWrapper
- React-Core
@@ -2144,7 +2144,7 @@ PODS:
- React-utils
- ReactNativeDependencies
- Yoga
- - React-RCTFBReactNativeSpec (0.86.0):
+ - React-RCTFBReactNativeSpec (0.86.2):
- hermes-engine
- RCTRequired
- RCTTypeSafety
@@ -2152,10 +2152,10 @@ PODS:
- React-Core-prebuilt
- React-jsi
- React-NativeModulesApple
- - React-RCTFBReactNativeSpec/components (= 0.86.0)
+ - React-RCTFBReactNativeSpec/components (= 0.86.2)
- ReactCommon
- ReactNativeDependencies
- - React-RCTFBReactNativeSpec/components (0.86.0):
+ - React-RCTFBReactNativeSpec/components (0.86.2):
- hermes-engine
- RCTRequired
- RCTTypeSafety
@@ -2172,7 +2172,7 @@ PODS:
- ReactCommon
- ReactNativeDependencies
- Yoga
- - React-RCTImage (0.86.0):
+ - React-RCTImage (0.86.2):
- RCTTypeSafety
- React-Core-prebuilt
- React-Core/RCTImageHeaders
@@ -2182,14 +2182,14 @@ PODS:
- React-RCTNetwork
- ReactCommon
- ReactNativeDependencies
- - React-RCTLinking (0.86.0):
- - React-Core/RCTLinkingHeaders (= 0.86.0)
- - React-jsi (= 0.86.0)
+ - React-RCTLinking (0.86.2):
+ - React-Core/RCTLinkingHeaders (= 0.86.2)
+ - React-jsi (= 0.86.2)
- React-NativeModulesApple
- React-RCTFBReactNativeSpec
- ReactCommon
- - ReactCommon/turbomodule/core (= 0.86.0)
- - React-RCTNetwork (0.86.0):
+ - ReactCommon/turbomodule/core (= 0.86.2)
+ - React-RCTNetwork (0.86.2):
- RCTTypeSafety
- React-Core-prebuilt
- React-Core/RCTNetworkHeaders
@@ -2203,7 +2203,7 @@ PODS:
- React-RCTFBReactNativeSpec
- ReactCommon
- ReactNativeDependencies
- - React-RCTRuntime (0.86.0):
+ - React-RCTRuntime (0.86.2):
- hermes-engine
- React-Core
- React-Core-prebuilt
@@ -2219,7 +2219,7 @@ PODS:
- React-RuntimeHermes
- React-utils
- ReactNativeDependencies
- - React-RCTSettings (0.86.0):
+ - React-RCTSettings (0.86.2):
- RCTTypeSafety
- React-Core-prebuilt
- React-Core/RCTSettingsHeaders
@@ -2228,10 +2228,10 @@ PODS:
- React-RCTFBReactNativeSpec
- ReactCommon
- ReactNativeDependencies
- - React-RCTText (0.86.0):
- - React-Core/RCTTextHeaders (= 0.86.0)
+ - React-RCTText (0.86.2):
+ - React-Core/RCTTextHeaders (= 0.86.2)
- Yoga
- - React-RCTVibration (0.86.0):
+ - React-RCTVibration (0.86.2):
- React-Core-prebuilt
- React-Core/RCTVibrationHeaders
- React-jsi
@@ -2239,15 +2239,15 @@ PODS:
- React-RCTFBReactNativeSpec
- ReactCommon
- ReactNativeDependencies
- - React-rendererconsistency (0.86.0)
- - React-renderercss (0.86.0):
+ - React-rendererconsistency (0.86.2)
+ - React-renderercss (0.86.2):
- React-debug
- React-utils
- - React-rendererdebug (0.86.0):
+ - React-rendererdebug (0.86.2):
- React-Core-prebuilt
- React-debug
- ReactNativeDependencies
- - React-RuntimeApple (0.86.0):
+ - React-RuntimeApple (0.86.2):
- hermes-engine
- React-callinvoker
- React-Core-prebuilt
@@ -2270,7 +2270,7 @@ PODS:
- React-runtimescheduler
- React-utils
- ReactNativeDependencies
- - React-RuntimeCore (0.86.0):
+ - React-RuntimeCore (0.86.2):
- hermes-engine
- React-Core-prebuilt
- React-cxxreact
@@ -2286,14 +2286,14 @@ PODS:
- React-runtimescheduler
- React-utils
- ReactNativeDependencies
- - React-runtimeexecutor (0.86.0):
+ - React-runtimeexecutor (0.86.2):
- React-Core-prebuilt
- React-debug
- React-featureflags
- - React-jsi (= 0.86.0)
+ - React-jsi (= 0.86.2)
- React-utils
- ReactNativeDependencies
- - React-RuntimeHermes (0.86.0):
+ - React-RuntimeHermes (0.86.2):
- hermes-engine
- React-Core-prebuilt
- React-featureflags
@@ -2308,7 +2308,7 @@ PODS:
- React-runtimeexecutor
- React-utils
- ReactNativeDependencies
- - React-runtimescheduler (0.86.0):
+ - React-runtimescheduler (0.86.2):
- hermes-engine
- React-callinvoker
- React-Core-prebuilt
@@ -2324,15 +2324,15 @@ PODS:
- React-timing
- React-utils
- ReactNativeDependencies
- - React-timing (0.86.0):
+ - React-timing (0.86.2):
- React-debug
- - React-utils (0.86.0):
+ - React-utils (0.86.2):
- hermes-engine
- React-Core-prebuilt
- React-debug
- - React-jsi (= 0.86.0)
+ - React-jsi (= 0.86.2)
- ReactNativeDependencies
- - React-viewtransitionnativemodule (0.86.0):
+ - React-viewtransitionnativemodule (0.86.2):
- hermes-engine
- React-Core-prebuilt
- React-Fabric
@@ -2344,7 +2344,7 @@ PODS:
- ReactCommon/turbomodule/core
- ReactNativeDependencies
- Yoga
- - React-webperformancenativemodule (0.86.0):
+ - React-webperformancenativemodule (0.86.2):
- hermes-engine
- React-Core-prebuilt
- React-cxxreact
@@ -2377,43 +2377,43 @@ PODS:
- ReactCommon/turbomodule/bridging
- ReactCommon/turbomodule/core
- ReactNativeDependencies
- - ReactCommon (0.86.0):
+ - ReactCommon (0.86.2):
- React-Core-prebuilt
- - ReactCommon/turbomodule (= 0.86.0)
+ - ReactCommon/turbomodule (= 0.86.2)
- ReactNativeDependencies
- - ReactCommon/turbomodule (0.86.0):
+ - ReactCommon/turbomodule (0.86.2):
- hermes-engine
- - React-callinvoker (= 0.86.0)
+ - React-callinvoker (= 0.86.2)
- React-Core-prebuilt
- - React-cxxreact (= 0.86.0)
- - React-jsi (= 0.86.0)
- - React-logger (= 0.86.0)
- - React-perflogger (= 0.86.0)
- - ReactCommon/turbomodule/bridging (= 0.86.0)
- - ReactCommon/turbomodule/core (= 0.86.0)
+ - React-cxxreact (= 0.86.2)
+ - React-jsi (= 0.86.2)
+ - React-logger (= 0.86.2)
+ - React-perflogger (= 0.86.2)
+ - ReactCommon/turbomodule/bridging (= 0.86.2)
+ - ReactCommon/turbomodule/core (= 0.86.2)
- ReactNativeDependencies
- - ReactCommon/turbomodule/bridging (0.86.0):
+ - ReactCommon/turbomodule/bridging (0.86.2):
- hermes-engine
- - React-callinvoker (= 0.86.0)
+ - React-callinvoker (= 0.86.2)
- React-Core-prebuilt
- - React-cxxreact (= 0.86.0)
- - React-jsi (= 0.86.0)
- - React-logger (= 0.86.0)
- - React-perflogger (= 0.86.0)
+ - React-cxxreact (= 0.86.2)
+ - React-jsi (= 0.86.2)
+ - React-logger (= 0.86.2)
+ - React-perflogger (= 0.86.2)
- ReactNativeDependencies
- - ReactCommon/turbomodule/core (0.86.0):
+ - ReactCommon/turbomodule/core (0.86.2):
- hermes-engine
- - React-callinvoker (= 0.86.0)
+ - React-callinvoker (= 0.86.2)
- React-Core-prebuilt
- - React-cxxreact (= 0.86.0)
- - React-debug (= 0.86.0)
- - React-featureflags (= 0.86.0)
- - React-jsi (= 0.86.0)
- - React-logger (= 0.86.0)
- - React-perflogger (= 0.86.0)
- - React-utils (= 0.86.0)
+ - React-cxxreact (= 0.86.2)
+ - React-debug (= 0.86.2)
+ - React-featureflags (= 0.86.2)
+ - React-jsi (= 0.86.2)
+ - React-logger (= 0.86.2)
+ - React-perflogger (= 0.86.2)
+ - React-utils (= 0.86.2)
- ReactNativeDependencies
- - ReactNativeDependencies (0.86.0)
+ - ReactNativeDependencies (0.86.2)
- RNCClipboard (1.16.3):
- hermes-engine
- RCTRequired
@@ -2857,7 +2857,7 @@ PODS:
- SDWebImageWebPCoder (0.15.0):
- libwebp (~> 1.0)
- SDWebImage/Core (~> 5.17)
- - stream-chat-react-native (9.7.0):
+ - stream-chat-react-native (9.7.1):
- hermes-engine
- RCTRequired
- RCTTypeSafety
@@ -2879,7 +2879,7 @@ PODS:
- ReactCommon/turbomodule/core
- ReactNativeDependencies
- Yoga
- - Teleport (1.1.10):
+ - Teleport (1.1.12):
- hermes-engine
- RCTRequired
- RCTTypeSafety
@@ -2900,9 +2900,9 @@ PODS:
- ReactCommon/turbomodule/bridging
- ReactCommon/turbomodule/core
- ReactNativeDependencies
- - Teleport/common (= 1.1.10)
+ - Teleport/common (= 1.1.12)
- Yoga
- - Teleport/common (1.1.10):
+ - Teleport/common (1.1.12):
- hermes-engine
- RCTRequired
- RCTTypeSafety
@@ -3071,7 +3071,7 @@ EXTERNAL SOURCES:
:path: "../node_modules/react-native/Libraries/FBLazyVector"
hermes-engine:
:podspec: "../node_modules/react-native/sdks/hermes-engine/hermes-engine.podspec"
- :tag: hermes-v250829098.0.14
+ :tag: hermes-v250829098.0.16
NitroModules:
:path: "../node_modules/react-native-nitro-modules"
NitroSound:
@@ -3275,7 +3275,7 @@ EXTERNAL SOURCES:
SPEC CHECKSUMS:
AsyncStorage: d721bb185bb20868b581693f0e77bb2ac13c4f12
- FBLazyVector: b3e7ad108f0d882e30445c5527d774e3fd432f3d
+ FBLazyVector: 3c3be9a019176b5699455f7f66c5444b78a411c6
Firebase: 99f203d3a114c6ba591f3b32263a9626e450af65
FirebaseAnalytics: ef2970f65f3a2807e8f47a49cf3b8719d53e9fce
FirebaseAppDistribution: 95d3febe2962bf26e445b809c9726e9131c8f859
@@ -3291,7 +3291,7 @@ SPEC CHECKSUMS:
GoogleAppMeasurement: 57270ccc2b77472d7e85c4cbe45972564eff78bb
GoogleDataTransport: aae35b7ea0c09004c3797d53c8c41f66f219d6a7
GoogleUtilities: 766ace00c6b10d8148408f329d10c4f051931850
- hermes-engine: 1f41a6be9fa6810ba845a13935cd414f5cb44ece
+ hermes-engine: 188393eb43a0cce2dfbf912e6d22c7bb6469957d
libavif: 84bbb62fb232c3018d6f1bab79beea87e35de7b7
libdav1d: 23581a4d8ec811ff171ed5e2e05cd27bad64c39f
libwebp: 02b23773aedb6ff1fd38cec7a77b81414c6842a8
@@ -3301,43 +3301,43 @@ SPEC CHECKSUMS:
op-sqlite: d8d5eae2bddb0b55d6f48cf7ac356b63d26cb4f0
PromisesObjC: 752c3227f599e3467650e47ea36f433eeb10c273
PromisesSwift: 217dea0fd5d2ad65222a109c48698add13cc1c5b
- RCTDeprecation: 2a74a2c57675e64419bd89078efde81f7c1de90b
- RCTRequired: 30451112e6fef4e6f31b4e7eee0845156e35e4b0
- RCTSwiftUI: 5aaf0b07e747ba749dc6acc94d8bd41eea4b570f
- RCTSwiftUIWrapper: ab2ca548be15d63afa95103afc8685a7c3eab78b
- RCTTypeSafety: 3eaed17dbddb0b989208b062ea14c44d412b9780
- React: 2574546f2d017abd14d0c9b48cf2b6a0547c2591
- React-callinvoker: 03cd4b931d1d583d87aae99b8f7b6fe26bf571ee
- React-Core: 1c824d9c7dd8aa760b5f1b50d5a54c2a3f598f87
+ RCTDeprecation: bccb6545c26db881ecddfd83a3f9ea82aba1605f
+ RCTRequired: b2f74764d596fc0051f00fee94b49bf41a6f7f5a
+ RCTSwiftUI: c6d6a31b849b9dfa64c33b55dc91ac15dd55774c
+ RCTSwiftUIWrapper: bdff268d65d662a79b1e571e841e1512275f9319
+ RCTTypeSafety: 159e394bdab42023fbdd8fa022dfdc5577a8b9ad
+ React: 4b2532a459d15e1adf6c22d3e399e5c85a94220f
+ React-callinvoker: 0b8ce4057e02a0bd15cf0532596e8eb8c0392e92
+ React-Core: 5af045531a540ba3f65f07de1e3f585ddfb27948
React-Core-prebuilt: 13924a267683b3d6fa4bde9c80380becf83a9c5c
- React-CoreModules: 2f9ed75bca7f6dea2b70e8a1f4a5ca9b6be52d76
- React-cxxreact: 7103d5ba69848c039e11079e74ceede05efe795e
- React-debug: e47fe49e67816470d183595746b1d0e20cd09fab
- React-defaultsnativemodule: bbdc7580f4de664e724b301a8f90f361a935e2c8
- React-domnativemodule: d908358936dfea6d8501ecd188a0e1a6b20736bd
- React-Fabric: be25f53eab48992eede759f526cfe6395cf36166
- React-FabricComponents: 7cc2657948de5996048cd99f9d9129e2e3aa76fa
- React-FabricImage: 511b8cd207f00cd69cf8f4ff9201ed5986069401
- React-featureflags: 9baabb633b957a8156deb659dfc11446d4072fd5
- React-featureflagsnativemodule: b2c0c243b27ef9c8f3f7abce38ee5e0e0be8061e
- React-graphics: b430aa8fa179ff249e0cfbb93d060bb40ffbc14c
- React-hermes: ae4685ca9fa5f47003bc594d3f146e29284136d1
- React-idlecallbacksnativemodule: e3262b84602f60df0ecd5ee09b150ced4d469dd6
- React-ImageManager: 46f07fc5e779023874a17d38125563efd984b217
- React-intersectionobservernativemodule: 3076f9d9c5ae57d01787a62855b44b521a157e20
- React-jserrorhandler: 79eca081e24b814692cb5d51f1a3534a86abd010
- React-jsi: c4b6daf8a31ac54f2db49cd6cce29720fec1f3a8
- React-jsiexecutor: acdc1a217b7ea29bcf6315b770d01e6b1c2fca14
- React-jsinspector: 58817ac80f434c07684ca61ba6a2d68fff49e4c8
- React-jsinspectorcdp: 1764d1dfb1a9a918328771513f4e1e338637ef0a
- React-jsinspectornetwork: 202626ea71170fb8d96ae9b8ed42b8bde432ac91
- React-jsinspectortracing: 466247ce4d42002d72683a362926a9a2ebd25072
- React-jsitooling: d7cb3dddcd66c1adcaf4cf9a8b0fa2a7154f0b59
- React-jsitracing: 50e5780a3428985944b3e694abd8239119194031
- React-logger: fff73f4ceecad968c97baafdc77dcf84befc38b6
- React-Mapbuffer: 1a42eda3f9d415ba9f7dcd7f1fe19d4f27925751
- React-microtasksnativemodule: 354ab193a7ed66e42869c8a0c2c0d844e8e22f67
- React-mutationobservernativemodule: f53ad06cbe4b44d2a33df6aa3f01ca8e9b57e83b
+ React-CoreModules: 99b194a721de84ccfc1be149a0de52647dc38c0e
+ React-cxxreact: b7e8e254074fd8111d147202b391ccf7816946a6
+ React-debug: 3281bfefe5ece9a9d8b28bec3f871db229f9d8d8
+ React-defaultsnativemodule: 1bd0a6e02f816f0c939baeaf2b7a9e799327274e
+ React-domnativemodule: f7d8ab3fbd37453301d69a866bc21456dc8c9bd8
+ React-Fabric: 9bb75bdf09a445e74d49dc2152cd2176d1379432
+ React-FabricComponents: f5c87bd4421ed262c25f57e8dea560221074e065
+ React-FabricImage: 39be2035c85a1004004c3dc62ddc3f17073fe105
+ React-featureflags: de5b3e964937f9dfbc05b98e51f3f4d0472789f4
+ React-featureflagsnativemodule: 6bebf75aeddd8799107a13f1db99f1a0ce2a0977
+ React-graphics: 9d482a1031375b90704be420d445879bed3132f7
+ React-hermes: 6fd579ceeb680830fc508697acdd5e8cd8dbf29f
+ React-idlecallbacksnativemodule: b5dacdd51c63ab15ed8a9bb1c875c6f0e92160d4
+ React-ImageManager: 1e86a5fbe7c49cc39f4bfb49f02df410d53dd96c
+ React-intersectionobservernativemodule: 13011eeac1a10a76e63888b1baab1ca2839fed39
+ React-jserrorhandler: 8c7e83f8259120207965c61e430733218d8fb58e
+ React-jsi: 7b14065a285f91b3dbe5448371ff575bbb523d59
+ React-jsiexecutor: 10b4ba40ec9fd571370dfee20251201f57712e79
+ React-jsinspector: fb62fdf5baea797b121e5566492536e3fab928ff
+ React-jsinspectorcdp: 2a0a882d722a17cea6bebcce23464156c470f384
+ React-jsinspectornetwork: b1dc2b219dd1c9bdbf13dccc8bfe313c39cf6cd7
+ React-jsinspectortracing: c57b2e67ee3b56f98d2b507d3a29c1b5d44049e6
+ React-jsitooling: 9fc594ea389d97893904f8ddafe1bec63313321b
+ React-jsitracing: ecbbc6d7f3de28197849da27f0e273e34a55626d
+ React-logger: 35ab012027cc552057f7ca5d031c6721f896e6bc
+ React-Mapbuffer: 75518c85e76e5117a6f7cac4e0bec4ba0a45723f
+ React-microtasksnativemodule: 9d2adb05be26b36bff9e3f24b0cc5bf0a0511c65
+ React-mutationobservernativemodule: e450c29376a09a0f6dd23170096f3e46f1ba6d57
react-native-blob-util: 4bbe44ed5eff3697228a3645c3761c90b7160f90
react-native-blur: 2c15b7e68450a2aa01a064f99d6045b86ee42fe0
react-native-cameraroll: d7e55dae97acb52c4ce88a32deb02841fa15de12
@@ -3348,41 +3348,41 @@ SPEC CHECKSUMS:
react-native-netinfo: a05f9b897e76ad24b53f615fed1cbb731932363d
react-native-safe-area-context: 0bbcdfba5c4a1b3203276f1ed9128e3239fdf199
react-native-video: 950a8bb07646654716ebf0dd78acf16f95fa3b6c
- React-NativeModulesApple: a092d89b58f635ebfab88048b0eda9fb516819fd
- React-networking: ee8e1504d7c1c73a3655bf545ca1184bebae4c7f
- React-oscompat: 0b72a7e926954a0415ccd83e0748b6561fe45367
- React-perflogger: 865984e492514aa6e5279fc3e663132cfa4d5022
- React-performancecdpmetrics: 88a3c32833d5d50bd35be98577298253f0404a34
- React-performancetimeline: 74b781fef76a2e8d461cc899760e9a52b6323d8c
- React-RCTActionSheet: 902c79deec52f99cc48b1051b59bcbe86787d339
- React-RCTAnimation: 09cf722039ae30ff5d64e2b011ff054ae651c3b6
- React-RCTAppDelegate: a47de6fddb7eb0c028abba83138a5ce283bd7e77
- React-RCTBlob: 38c418d067e0c61818223503063310122e44c588
- React-RCTFabric: 394ceb66233b460e9db2112d7db35d6ce762d841
- React-RCTFBReactNativeSpec: 55b98a66521548287e08cabd92f993c20eeff369
- React-RCTImage: 3ce36f82441b76b715818ee7ee95f6f5b34f9ee1
- React-RCTLinking: 2f7b5ed4983122e5115732d25a4360960eab583c
- React-RCTNetwork: dcd3b180f33da86f5dc5e928a816eb5464fa7f16
- React-RCTRuntime: 4ba98336cafb41a25fee39618a0d9994595cbf82
- React-RCTSettings: b97727ec8c55c35bd284457a647c938c040b942b
- React-RCTText: 4d1b88f6d3e1a43afe46706d956ec6664c87b984
- React-RCTVibration: 415d14d6a1a64bf947fcef6b193915a494431168
- React-rendererconsistency: 98a2cc5c4fdae126d9446afa5edd061e5a7eb105
- React-renderercss: cd4e8a7a9e41d02a0bc968c64182bbfe2e29cb8d
- React-rendererdebug: 31560fc7e22ca8cca17382767d9a1bf31311f915
- React-RuntimeApple: d879aefebf1067ad37de2fdd886b47a62cda9896
- React-RuntimeCore: dd37f98c158275a6117211bac5a94d0204ff30e0
- React-runtimeexecutor: ea0dad34ec733736d8aeeb6fe34dbfb306afb2a9
- React-RuntimeHermes: 6e19c1a247d43b6978e231673ee8fd4c5c52643b
- React-runtimescheduler: d767e75db2694a0545784f2155303970c4b76df5
- React-timing: 942b1204ed892dad1095e1a34842aeecf5ec4e68
- React-utils: 2927e2a1f437cd0fd5e3a2f0aa9d2a9ceacbeddf
- React-viewtransitionnativemodule: 6c82bccff3c5649a27134b660bfe7106f741b1f8
- React-webperformancenativemodule: f07a77f0b2407765f3b4e1e71bcb421093ccd35f
+ React-NativeModulesApple: 167e532fb9bae30f3c66636b8ee0092bab263667
+ React-networking: e382e6f2f815e801a34a630e708a551c7feb2090
+ React-oscompat: db6675ddaef3bddd1b41533627f3d26ec710c05f
+ React-perflogger: c34660c72849d23319f5e544c97e6c6ed687b186
+ React-performancecdpmetrics: c852458c139c8c2a15284ddb7d4927d907b38731
+ React-performancetimeline: cf6cd525e8d8a1c625985d54d9ee68296073f281
+ React-RCTActionSheet: 7d18777c531c516ab9f86342583057b15fb7fd7d
+ React-RCTAnimation: f2505067d2d83268f5619192f8f5ff14b2606c7f
+ React-RCTAppDelegate: 7bfa4d752f45a0b9195b8da0f188f8904806a86f
+ React-RCTBlob: 7b4d25eca2a6ecd83766d76790879774b73b4cd5
+ React-RCTFabric: 2f4e25dd2a256cbba5d95d8ec2c03a876fddd8ec
+ React-RCTFBReactNativeSpec: 1f8c18b3344dee44d60d750958a0d0f94fcf4f3d
+ React-RCTImage: 9123b010921479b5bcd3771a4a4d4e788227a427
+ React-RCTLinking: 358d42629d7012c5d75060fd3e25023b72ebae31
+ React-RCTNetwork: 32f5274abd61e937bdcbfd85810ae784d3f0e38a
+ React-RCTRuntime: 606364977ba254a416e85ef7a9f6e08b89818a32
+ React-RCTSettings: 86aa6e6a3a335d989e3fcd1bd98b9ea6331adfa9
+ React-RCTText: 59376611225f3c6fdc75d57571d7c345bdd0be1e
+ React-RCTVibration: 3c7d17d3373c114220be9ac3b99df1646009b8fe
+ React-rendererconsistency: 3238990615931ff327b5f1d98852cd6603dc5d10
+ React-renderercss: a0142ecb1e580926514c05c70205e825230005d0
+ React-rendererdebug: d475dc238a8f39c248d328605bc48268b2111625
+ React-RuntimeApple: 2aab0db6b710869c4e995e0b9054edbe01c1f182
+ React-RuntimeCore: 701d4a24f5a4a5e990b1cafea443e7bffb707de8
+ React-runtimeexecutor: 9a0a090bf8183a45ddda95be72ba0d2d7bc5a6d4
+ React-RuntimeHermes: c0a3a63d306daf45646862ce09afa00d8e654873
+ React-runtimescheduler: 2af097dd7630e559e7f0a740d875857c4a02f90d
+ React-timing: 329b5e88f59491a5e893f6c549bd10883ef30e5a
+ React-utils: 25a0beadc5eacbffeb965c7024826b1233dbedc6
+ React-viewtransitionnativemodule: 8f1d4895e081e0b2f0a98069c098eb40be032138
+ React-webperformancenativemodule: 5bddf6c7eecda8a3ce48b82609008965cc9d94c2
ReactAppDependencyProvider: dcdd0e1b9559a6d8d8aea05286f4ed085091978e
ReactCodegen: cd296de5e1c422deebafff34134d1721b5c29704
- ReactCommon: d5c1bb4427bf51c443de5926aac332c89ddd9363
- ReactNativeDependencies: fa0a54b3f5319ae0e3b9aff32bfee7a424b88e66
+ ReactCommon: 9002f006f571256348994183f7d4387aa7cf84e8
+ ReactNativeDependencies: 2bd6854ade79bf1b60586d1ab7813a389df1b6bf
RNCClipboard: 7a7d4557bfd3370b35c99dfecd92ae7b9fc4948a
RNFastImage: 14580cef91660b889645fb9e87f58a53621db993
RNFBApp: ab502c911e5203f22a56998b7ed22e5ecf436da4
@@ -3399,9 +3399,9 @@ SPEC CHECKSUMS:
SDWebImageAVIFCoder: afe194a084e851f70228e4be35ef651df0fc5c57
SDWebImageSVGCoder: 15a300a97ec1c8ac958f009c02220ac0402e936c
SDWebImageWebPCoder: 0e06e365080397465cc73a7a9b472d8a3bd0f377
- stream-chat-react-native: b8f70a8fb5382c4a6a6a6dc16d52dd7243bab3af
- Teleport: 93c496febe89d55968f170f14f0a87b473a550ed
- Yoga: c30c859b7e9b75e547b600b486fe33165f60de00
+ stream-chat-react-native: b3a7450925e3744152f7a5ee008310274debd6c7
+ Teleport: c56b30b08bd20d10da1efb0f21c6bc50c269ee6a
+ Yoga: 542a30dafe5b0f5f1d9f185ea7b2a3811ac54801
PODFILE CHECKSUM: 265665a90a2835886ea9693f40400a18ed64d6e5
diff --git a/package/src/components/Message/Message.tsx b/package/src/components/Message/Message.tsx
index 212386b269..7eb6c97628 100644
--- a/package/src/components/Message/Message.tsx
+++ b/package/src/components/Message/Message.tsx
@@ -136,20 +136,36 @@ export type GalleryThumbnailTouchableHandlerPayload = {
additionalInfo?: GalleryThumbnailTouchableHandlerAdditionalInfo;
};
+export type ReactionListTouchableHandlerAdditionalInfo = {
+ /**
+ * The reaction type of the pressed reaction. Populated for presses that
+ * originate from a single reaction (segmented list item/clustered pill),
+ * undefined for the "+N more" overflow item.
+ */
+ reactionType?: string;
+};
+
+export type ReactionListTouchableHandlerPayload = {
+ emitter: 'reactionList';
+ additionalInfo?: ReactionListTouchableHandlerAdditionalInfo;
+};
+
export type PressableHandlerPayload = {
defaultHandler?: () => void;
event?: GestureResponderEvent;
} & (
| {
+ additionalInfo?: Record;
emitter?: Exclude<
TouchableEmitter,
- 'textMention' | 'textLink' | 'urlPreview' | 'fileAttachment' | 'gallery'
+ 'textMention' | 'textLink' | 'urlPreview' | 'fileAttachment' | 'gallery' | 'reactionList'
>;
}
| TextMentionTouchableHandlerPayload
| UrlTouchableHandlerPayload
| FileAttachmentTouchableHandlerPayload
| GalleryThumbnailTouchableHandlerPayload
+ | ReactionListTouchableHandlerPayload
);
export type MessagePressableHandlerPayload = PressableHandlerPayload & {
@@ -741,6 +757,7 @@ const MessageWithContext = (props: MessagePropsWithContext) => {
onLongPress: (payload) => {
const onLongPressArgs = {
actionHandlers,
+ additionalInfo: payload?.additionalInfo,
defaultHandler: payload?.defaultHandler || onLongPress,
emitter: payload?.emitter || 'message',
event: payload?.event,
@@ -796,6 +813,7 @@ const MessageWithContext = (props: MessagePropsWithContext) => {
if (onPressInMessageProp) {
return onPressInMessageProp({
actionHandlers,
+ additionalInfo: payload.additionalInfo,
defaultHandler: payload.defaultHandler,
emitter: payload.emitter || 'message',
event: payload.event,
diff --git a/package/src/components/Message/MessageItemView/ReactionList/ReactionListBottom.tsx b/package/src/components/Message/MessageItemView/ReactionList/ReactionListBottom.tsx
index 1cf02a99f2..1435b86df2 100644
--- a/package/src/components/Message/MessageItemView/ReactionList/ReactionListBottom.tsx
+++ b/package/src/components/Message/MessageItemView/ReactionList/ReactionListBottom.tsx
@@ -20,7 +20,6 @@ export type ReactionListBottomProps = Partial<
Pick<
MessageContextValue,
| 'alignment'
- | 'handleReaction'
| 'hasReactions'
| 'onLongPress'
| 'onPress'
@@ -43,7 +42,6 @@ const ItemSeparatorComponent = () => {
export const ReactionListBottom = (props: ReactionListBottomProps) => {
const {
alignment: propAlignment,
- handleReaction: propHandlerReaction,
hasReactions: propHasReactions,
onLongPress: propOnLongPress,
onPress: propOnPress,
@@ -58,7 +56,6 @@ export const ReactionListBottom = (props: ReactionListBottomProps) => {
const {
alignment: contextAlignment,
- handleReaction: contextHandleReaction,
hasReactions: contextHasReactions,
onLongPress: contextOnLongPress,
onPress: contextOnPress,
@@ -72,7 +69,6 @@ export const ReactionListBottom = (props: ReactionListBottomProps) => {
const { supportedReactions: contextSupportedReactions } = useMessagesContext();
const alignment = propAlignment || contextAlignment;
- const handleReaction = propHandlerReaction || contextHandleReaction;
const hasReactions = propHasReactions || contextHasReactions;
const onLongPress = propOnLongPress || contextOnLongPress;
const onPress = propOnPress || contextOnPress;
@@ -85,7 +81,6 @@ export const ReactionListBottom = (props: ReactionListBottomProps) => {
const renderItem = useCallback(
({ index, item }: { index: number; item: ReactionListItemProps }) => (
{
}
const reactionListBottomItemData: ReactionListItemProps[] = reactions.map((reaction) => ({
- handleReaction,
onLongPress,
onPress,
onPressIn,
diff --git a/package/src/components/Message/MessageItemView/ReactionList/ReactionListItem.tsx b/package/src/components/Message/MessageItemView/ReactionList/ReactionListItem.tsx
index 39ac490907..ebb7b5f8b8 100644
--- a/package/src/components/Message/MessageItemView/ReactionList/ReactionListItem.tsx
+++ b/package/src/components/Message/MessageItemView/ReactionList/ReactionListItem.tsx
@@ -33,12 +33,7 @@ const Icon = ({ size, style, supportedReactions, type }: Props) => {
export type ReactionListItemProps = Partial<
Pick<
MessageContextValue,
- | 'handleReaction'
- | 'onLongPress'
- | 'onPress'
- | 'onPressIn'
- | 'preventPress'
- | 'showReactionsOverlay'
+ 'onLongPress' | 'onPress' | 'onPressIn' | 'preventPress' | 'showReactionsOverlay'
>
> &
Partial> & {
@@ -49,7 +44,6 @@ export type ReactionListItemProps = Partial<
export const ReactionListItem = (props: ReactionListItemProps) => {
const {
- handleReaction,
onLongPress,
onPress,
onPressIn,
@@ -80,6 +74,7 @@ export const ReactionListItem = (props: ReactionListItemProps) => {
onLongPress={(event) => {
if (onLongPress) {
onLongPress({
+ additionalInfo: { reactionType: reaction.type },
defaultHandler: () => {
if (showReactionsOverlay) {
showReactionsOverlay(reaction.type);
@@ -93,9 +88,10 @@ export const ReactionListItem = (props: ReactionListItemProps) => {
onPress={(event) => {
if (onPress) {
onPress({
+ additionalInfo: { reactionType: reaction.type },
defaultHandler: () => {
- if (handleReaction) {
- handleReaction(reaction.type);
+ if (showReactionsOverlay) {
+ showReactionsOverlay(reaction.type);
}
},
emitter: 'reactionList',
@@ -106,9 +102,10 @@ export const ReactionListItem = (props: ReactionListItemProps) => {
onPressIn={(event) => {
if (onPressIn) {
onPressIn({
+ additionalInfo: { reactionType: reaction.type },
defaultHandler: () => {
- if (handleReaction) {
- handleReaction(reaction.type);
+ if (showReactionsOverlay) {
+ showReactionsOverlay(reaction.type);
}
},
emitter: 'reactionList',
diff --git a/package/src/components/Message/MessageItemView/ReactionList/ReactionListTop.tsx b/package/src/components/Message/MessageItemView/ReactionList/ReactionListTop.tsx
index af407679ee..621e90a7cc 100644
--- a/package/src/components/Message/MessageItemView/ReactionList/ReactionListTop.tsx
+++ b/package/src/components/Message/MessageItemView/ReactionList/ReactionListTop.tsx
@@ -25,7 +25,6 @@ export type ReactionListTopProps = Partial<
| 'preventPress'
| 'reactions'
| 'showReactionsOverlay'
- | 'handleReaction'
> &
Pick
> & {
@@ -47,7 +46,6 @@ export const ReactionListTop = (props: ReactionListTopProps) => {
reactions: propReactions,
showReactionsOverlay: propShowReactionsOverlay,
supportedReactions: propSupportedReactions,
- handleReaction: propHandleReaction,
type,
showCount = true,
} = props;
@@ -61,7 +59,6 @@ export const ReactionListTop = (props: ReactionListTopProps) => {
preventPress: contextPreventPress,
reactions: contextReactions,
showReactionsOverlay: contextShowReactionsOverlay,
- handleReaction: contextHandleReaction,
} = useMessageContext();
const { ReactionListClustered, ReactionListCountItem, ReactionListItem } = useComponentsContext();
@@ -76,7 +73,6 @@ export const ReactionListTop = (props: ReactionListTopProps) => {
const reactions = propReactions || contextReactions;
const showReactionsOverlay = propShowReactionsOverlay || contextShowReactionsOverlay;
const supportedReactions = propSupportedReactions || contextSupportedReactions;
- const handleReaction = propHandleReaction || contextHandleReaction;
const styles = useStyles({ alignment });
@@ -115,7 +111,6 @@ export const ReactionListTop = (props: ReactionListTopProps) => {
{
// });
// });
- it('call handleReaction on press', () => {
+ it('does not toggle the reaction on press but opens the reactions bottom sheet instead', () => {
+ // Tapping a segmented reaction must mirror the clustered flow: it opens the
+ // reactions bottom sheet (preselecting the tapped reaction) rather than
+ // adding/removing the current user's reaction.
const handleReactionMock = jest.fn();
const user = generateUser();
const reaction = generateReaction();
@@ -172,6 +175,43 @@ describe('ReactionListBottom', () => {
fireEvent(reactionListBottomItem, 'onPress');
- expect(handleReactionMock).toHaveBeenCalledTimes(1);
+ expect(handleReactionMock).not.toHaveBeenCalled();
+ expect(screen.getByLabelText('User Reactions on long press message')).toBeTruthy();
+ });
+
+ it('exposes the pressed reaction type via onPressMessage so integrators can toggle', () => {
+ // Integrators that want the old toggle-on-tap behavior can intercept the
+ // `reactionList` emitter and call `actionHandlers.toggleReaction(reactionType)`.
+ const onPressMessageMock = jest.fn();
+ const user = generateUser();
+ const reaction = generateReaction();
+ const message = generateMessage({
+ reaction_groups: { [reaction.type]: reaction } as unknown as ReturnType<
+ typeof generateMessage
+ >['reaction_groups'],
+ user,
+ });
+
+ renderMessage(
+ { message },
+ {
+ onPressMessage: onPressMessageMock,
+ reactionListPosition: 'bottom',
+ reactionListType: 'segmented',
+ },
+ );
+
+ const reactionListBottomItem = screen.getByTestId('reaction-list-item');
+
+ fireEvent(reactionListBottomItem, 'onPress');
+
+ expect(onPressMessageMock).toHaveBeenCalledWith(
+ expect.objectContaining({
+ additionalInfo: { reactionType: reaction.type },
+ emitter: 'reactionList',
+ }),
+ );
+ // onPressMessage replaces the default handler, so the sheet must NOT open here.
+ expect(screen.queryByLabelText('User Reactions on long press message')).toBeNull();
});
});
diff --git a/package/src/components/MessageMenu/MessageUserReactions.tsx b/package/src/components/MessageMenu/MessageUserReactions.tsx
index 2d6f6513e3..a25f713ad0 100644
--- a/package/src/components/MessageMenu/MessageUserReactions.tsx
+++ b/package/src/components/MessageMenu/MessageUserReactions.tsx
@@ -94,14 +94,21 @@ const reactionSelectorKeyExtractor = (item: ReactionSelectorItemType) => item.ty
export const MessageUserReactions = (props: MessageUserReactionsProps) => {
const styles = useStyles();
const [showMoreReactions, setShowMoreReactions] = useState(false);
- const { message, reactions: propReactions, supportedReactions: propSupportedReactions } = props;
+ const {
+ message,
+ reactions: propReactions,
+ selectedReaction: propSelectedReaction,
+ supportedReactions: propSupportedReactions,
+ } = props;
const selectorListRef = useRef(null);
const { close } = useBottomSheetContext();
const reactionTypes = useMemo(
() => Object.keys(message?.reaction_groups ?? {}),
[message?.reaction_groups],
);
- const [selectedReaction, setSelectedReaction] = useState(undefined);
+ const [selectedReaction, setSelectedReaction] = useState(
+ propSelectedReaction,
+ );
const { supportedReactions: contextSupportedReactions } = useMessagesContext();
const { icons, MessageUserReactionsItem } = useComponentsContext();
const { handleReaction } = useMessageContext();
diff --git a/package/src/components/MessageMenu/__tests__/MessageUserReactions.test.tsx b/package/src/components/MessageMenu/__tests__/MessageUserReactions.test.tsx
index 80e4117d72..352da37c2c 100644
--- a/package/src/components/MessageMenu/__tests__/MessageUserReactions.test.tsx
+++ b/package/src/components/MessageMenu/__tests__/MessageUserReactions.test.tsx
@@ -103,6 +103,14 @@ describe('MessageUserReactions when the supportedReactions are defined', () => {
expect(reactionButtons[1].props.accessibilityState.selected).toBe(false);
});
+ it('preselects the reaction passed via the selectedReaction prop', () => {
+ const { getAllByRole } = renderComponent({ selectedReaction: 'love' });
+ const reactionButtons = filterReactionButtons(getAllByRole('button'));
+ // reaction_groups order is `like`, `love`
+ expect(reactionButtons[0].props.accessibilityState.selected).toBe(false);
+ expect(reactionButtons[1].props.accessibilityState.selected).toBe(true);
+ });
+
it('toggles the selected reaction when a reaction button is pressed twice', () => {
const { getAllByRole } = renderComponent();
let reactionButtons = filterReactionButtons(getAllByRole('button'));
diff --git a/package/src/contexts/messagesContext/MessagesContext.tsx b/package/src/contexts/messagesContext/MessagesContext.tsx
index b4846b074b..2da1e185ae 100644
--- a/package/src/contexts/messagesContext/MessagesContext.tsx
+++ b/package/src/contexts/messagesContext/MessagesContext.tsx
@@ -302,6 +302,7 @@ export type MessagesContextValue = Pick Promise;
* toggleReaction, // (reactionType: string) => Promise;
* },
+ * additionalInfo, // emitter-specific info, e.g. `{ reactionType }` when emitter === 'reactionList'
* defaultHandler, // () => void
* event, // any event object corresponding to touchable feedback
* emitter, // which component trigged this touchable feedback e.g. card, fileAttachment, gallery, message ... etc
@@ -311,6 +312,21 @@ export type MessagesContextValue = Pick
* ```
+ *
+ * By default, pressing a reaction opens the reactions bottom sheet. To instead toggle
+ * the reaction (add/remove the current user's reaction), intercept the `reactionList` emitter:
+ *
+ * ```
+ * {
+ * if (emitter === 'reactionList' && additionalInfo?.reactionType) {
+ * actionHandlers?.toggleReaction(additionalInfo.reactionType as string);
+ * return;
+ * }
+ * defaultHandler?.();
+ * }}
+ * />
+ * ```
*/
onPressMessage?: (payload: MessagePressableHandlerPayload) => void;
quotedMessage?: LocalMessage | null;