From dffdffa2bc3f520d23a165c9ed592d90e9252664 Mon Sep 17 00:00:00 2001 From: Khushal Agarwal Date: Mon, 17 Nov 2025 11:52:00 +0530 Subject: [PATCH 1/6] Merge pull request #3279 from GetStream/perf/react-compiler feat: enable react compiler in the Sample and Expo app --- examples/ExpoMessaging/app.json | 3 + examples/ExpoMessaging/package.json | 14 +- examples/ExpoMessaging/yarn.lock | 584 ++++++++---------- examples/SampleApp/babel.config.js | 2 +- examples/SampleApp/package.json | 1 + examples/SampleApp/yarn.lock | 20 + .../Poll/components/PollAnswersList.tsx | 4 +- .../PollResults/PollOptionFullResults.tsx | 4 +- 8 files changed, 299 insertions(+), 333 deletions(-) diff --git a/examples/ExpoMessaging/app.json b/examples/ExpoMessaging/app.json index 5b3393b136..191472d07e 100644 --- a/examples/ExpoMessaging/app.json +++ b/examples/ExpoMessaging/app.json @@ -15,6 +15,9 @@ "updates": { "fallbackToCacheTimeout": 0 }, + "experiments": { + "reactCompiler": true + }, "assetBundlePatterns": ["**/*"], "ios": { "supportsTablet": true, diff --git a/examples/ExpoMessaging/package.json b/examples/ExpoMessaging/package.json index 5caee9252e..05cdda1247 100644 --- a/examples/ExpoMessaging/package.json +++ b/examples/ExpoMessaging/package.json @@ -18,12 +18,12 @@ "@react-native-firebase/messaging": "^23.4.0", "@react-navigation/elements": "^2.6.4", "@react-navigation/native": "^7.1.8", - "@shopify/flash-list": "^2.1.0", - "expo": "54.0.13", - "expo-audio": "~1.0.13", + "@shopify/flash-list": "2.0.2", + "expo": "54.0.22", + "expo-audio": "~1.0.14", "expo-build-properties": "~1.0.9", "expo-clipboard": "~8.0.7", - "expo-constants": "~18.0.9", + "expo-constants": "~18.0.10", "expo-document-picker": "~14.0.7", "expo-file-system": "~19.0.17", "expo-haptics": "~15.0.7", @@ -31,13 +31,13 @@ "expo-image-picker": "~17.0.8", "expo-linking": "~8.0.8", "expo-location": "~19.0.7", - "expo-router": "~6.0.12", + "expo-router": "~6.0.14", "expo-sharing": "~14.0.7", "expo-splash-screen": "~31.0.10", "expo-status-bar": "~3.0.8", - "expo-video": "~3.0.11", + "expo-video": "~3.0.14", "react": "19.1.0", - "react-native": "0.81.4", + "react-native": "0.81.5", "react-native-gesture-handler": "~2.28.0", "react-native-maps": "1.20.1", "react-native-reanimated": "~4.1.1", diff --git a/examples/ExpoMessaging/yarn.lock b/examples/ExpoMessaging/yarn.lock index c3ec79aa75..b0654bc72e 100644 --- a/examples/ExpoMessaging/yarn.lock +++ b/examples/ExpoMessaging/yarn.lock @@ -785,10 +785,10 @@ dependencies: "@types/hammerjs" "^2.0.36" -"@expo/cli@54.0.11": - version "54.0.11" - resolved "https://registry.yarnpkg.com/@expo/cli/-/cli-54.0.11.tgz#a86b6c01ab76620d25a0a7e0574ab43403b91253" - integrity sha512-ik9p8+JTOuVXS462+vFPV0qnWRBXIR1bPmoVKO8xQWw6Yk+K6UlU2GrM2ch7kA3JlSJE/MGsNyN8CB0zFZbVbQ== +"@expo/cli@54.0.15": + version "54.0.15" + resolved "https://registry.yarnpkg.com/@expo/cli/-/cli-54.0.15.tgz#63ca51d082fe0d683482c320f9b827c1637c01cb" + integrity sha512-tgaKFeYNRjZssPueZMm1+2cRek6mxEsthPoBX6NzQeDlzIzYBBpnAR6xH95UO6A7r0vduBeL2acIAV1Y5aSGJQ== dependencies: "@0no-co/graphql.web" "^1.0.8" "@expo/code-signing-certificates" "^0.0.5" @@ -798,18 +798,18 @@ "@expo/env" "~2.0.7" "@expo/image-utils" "^0.8.7" "@expo/json-file" "^10.0.7" - "@expo/mcp-tunnel" "~0.0.7" - "@expo/metro" "~54.0.0" - "@expo/metro-config" "~54.0.6" + "@expo/mcp-tunnel" "~0.1.0" + "@expo/metro" "~54.1.0" + "@expo/metro-config" "~54.0.8" "@expo/osascript" "^2.3.7" "@expo/package-manager" "^1.9.8" "@expo/plist" "^0.4.7" - "@expo/prebuild-config" "^54.0.5" + "@expo/prebuild-config" "^54.0.6" "@expo/schema-utils" "^0.1.7" "@expo/spawn-async" "^1.7.2" "@expo/ws-tunnel" "^1.0.1" "@expo/xcpretty" "^4.3.0" - "@react-native/dev-middleware" "0.81.4" + "@react-native/dev-middleware" "0.81.5" "@urql/core" "^5.0.6" "@urql/exchange-retry" "^1.3.0" accepts "^1.3.8" @@ -823,7 +823,7 @@ connect "^3.7.0" debug "^4.3.4" env-editor "^0.4.1" - expo-server "^1.0.1" + expo-server "^1.0.4" freeport-async "^2.0.0" getenv "^2.0.0" glob "^10.4.2" @@ -934,10 +934,10 @@ dotenv-expand "~11.0.6" getenv "^2.0.0" -"@expo/fingerprint@0.15.1": - version "0.15.1" - resolved "https://registry.yarnpkg.com/@expo/fingerprint/-/fingerprint-0.15.1.tgz#1feb1c761b6787d56c6d70a834c495157fbe050a" - integrity sha512-U1S9DwiapCHQjHdHDDyO/oXsl/1oEHSHZRRkWDDrHgXRUDiAVIySw9Unvvcr118Ee6/x4NmKSZY1X0VagrqmFg== +"@expo/fingerprint@0.15.3": + version "0.15.3" + resolved "https://registry.yarnpkg.com/@expo/fingerprint/-/fingerprint-0.15.3.tgz#26e7231d1ebd69a375c02ba595bba7b06fe882bb" + integrity sha512-8YPJpEYlmV171fi+t+cSLMX1nC5ngY9j2FiN70dHldLpd6Ct6ouGhk96svJ4BQZwsqwII2pokwzrDAwqo4Z0FQ== dependencies: "@expo/spawn-async" "^1.7.2" arg "^5.0.2" @@ -975,19 +975,19 @@ "@babel/code-frame" "~7.10.4" json5 "^2.2.3" -"@expo/mcp-tunnel@~0.0.7": - version "0.0.8" - resolved "https://registry.yarnpkg.com/@expo/mcp-tunnel/-/mcp-tunnel-0.0.8.tgz#8c4fabec4e25e119998b22bd846e9d12435da4da" - integrity sha512-6261obzt6h9TQb6clET7Fw4Ig4AY2hfTNKI3gBt0gcTNxZipwMg8wER7ssDYieA9feD/FfPTuCPYFcR280aaWA== +"@expo/mcp-tunnel@~0.1.0": + version "0.1.0" + resolved "https://registry.yarnpkg.com/@expo/mcp-tunnel/-/mcp-tunnel-0.1.0.tgz#ae4ce4320b2f97a9891783c2316f9936c912d126" + integrity sha512-rJ6hl0GnIZj9+ssaJvFsC7fwyrmndcGz+RGFzu+0gnlm78X01957yjtHgjcmnQAgL5hWEOR6pkT0ijY5nU5AWw== dependencies: ws "^8.18.3" zod "^3.25.76" zod-to-json-schema "^3.24.6" -"@expo/metro-config@54.0.6", "@expo/metro-config@~54.0.6": - version "54.0.6" - resolved "https://registry.yarnpkg.com/@expo/metro-config/-/metro-config-54.0.6.tgz#382b7c8f864cf21e1d15716a6ead27d834bee215" - integrity sha512-z3wufTr1skM03PI6Dr1ZsrvjAiGKf/w0VQvdZL+mEnKNqRA7Q4bhJDGk1+nzs+WWRWz4vS488uad9ERmSclBmg== +"@expo/metro-config@54.0.8", "@expo/metro-config@~54.0.8": + version "54.0.8" + resolved "https://registry.yarnpkg.com/@expo/metro-config/-/metro-config-54.0.8.tgz#7e5bf551b23e8f4c8ec20504184e0a9988ffa86e" + integrity sha512-rCkDQ8IT6sgcGNy48O2cTE4NlazCAgAIsD5qBsNPJLZSS0XbaILvAgGsFt/4nrx0GMGj6iQcOn5ifwV4NssTmw== dependencies: "@babel/code-frame" "^7.20.0" "@babel/core" "^7.20.0" @@ -995,7 +995,7 @@ "@expo/config" "~12.0.10" "@expo/env" "~2.0.7" "@expo/json-file" "~10.0.7" - "@expo/metro" "~54.0.0" + "@expo/metro" "~54.1.0" "@expo/spawn-async" "^1.7.2" browserslist "^4.25.0" chalk "^4.1.0" @@ -1021,23 +1021,23 @@ stacktrace-parser "^0.1.10" whatwg-fetch "^3.0.0" -"@expo/metro@~54.0.0": - version "54.0.0" - resolved "https://registry.yarnpkg.com/@expo/metro/-/metro-54.0.0.tgz#ebb3846ee2fee688147fc08f7fed5b75fabde17f" - integrity sha512-x2HlliepLJVLSe0Fl/LuPT83Mn2EXpPlb1ngVtcawlz4IfbkYJo16/Zfsfrn1t9d8LpN5dD44Dc55Q1/fO05Nw== - dependencies: - metro "0.83.1" - metro-babel-transformer "0.83.1" - metro-cache "0.83.1" - metro-cache-key "0.83.1" - metro-config "0.83.1" - metro-core "0.83.1" - metro-file-map "0.83.1" - metro-resolver "0.83.1" - metro-runtime "0.83.1" - metro-source-map "0.83.1" - metro-transform-plugins "0.83.1" - metro-transform-worker "0.83.1" +"@expo/metro@~54.1.0": + version "54.1.0" + resolved "https://registry.yarnpkg.com/@expo/metro/-/metro-54.1.0.tgz#27765ef2c342c39086a2f5c9f932a375dc2ccad3" + integrity sha512-MgdeRNT/LH0v1wcO0TZp9Qn8zEF0X2ACI0wliPtv5kXVbXWI+yK9GyrstwLAiTXlULKVIg3HVSCCvmLu0M3tnw== + dependencies: + metro "0.83.2" + metro-babel-transformer "0.83.2" + metro-cache "0.83.2" + metro-cache-key "0.83.2" + metro-config "0.83.2" + metro-core "0.83.2" + metro-file-map "0.83.2" + metro-resolver "0.83.2" + metro-runtime "0.83.2" + metro-source-map "0.83.2" + metro-transform-plugins "0.83.2" + metro-transform-worker "0.83.2" "@expo/osascript@^2.3.7": version "2.3.7" @@ -1084,17 +1084,17 @@ semver "^7.6.0" xml2js "0.6.0" -"@expo/prebuild-config@^54.0.5": - version "54.0.5" - resolved "https://registry.yarnpkg.com/@expo/prebuild-config/-/prebuild-config-54.0.5.tgz#81bf7e2b8641da38cade6bb7341f0d384d9bc8f4" - integrity sha512-eCvbVUf01j1nSrs4mG/rWwY+SfgE30LM6JcElLrnNgNnaDWzt09E/c8n3ZeTLNKENwJaQQ1KIn2VE461/4VnWQ== +"@expo/prebuild-config@^54.0.6": + version "54.0.6" + resolved "https://registry.yarnpkg.com/@expo/prebuild-config/-/prebuild-config-54.0.6.tgz#0f0daed0195efbb33d91a730052b208507f94eed" + integrity sha512-xowuMmyPNy+WTNq+YX0m0EFO/Knc68swjThk4dKivgZa8zI1UjvFXOBIOp8RX4ljCXLzwxQJM5oBBTvyn+59ZA== dependencies: "@expo/config" "~12.0.10" "@expo/config-plugins" "~54.0.2" "@expo/config-types" "^54.0.8" "@expo/image-utils" "^0.8.7" "@expo/json-file" "^10.0.7" - "@react-native/normalize-colors" "0.81.4" + "@react-native/normalize-colors" "0.81.5" debug "^4.3.1" resolve-from "^5.0.0" semver "^7.6.0" @@ -1122,10 +1122,10 @@ resolved "https://registry.yarnpkg.com/@expo/sudo-prompt/-/sudo-prompt-9.3.2.tgz#0fd2813402a42988e49145cab220e25bea74b308" integrity sha512-HHQigo3rQWKMDzYDLkubN5WQOYXJJE2eNqIQC2axC2iO3mHdwnIR7FgZVvHWtBwAdzBgAP0ECp8KqS8TiMKvgw== -"@expo/vector-icons@^15.0.2": - version "15.0.2" - resolved "https://registry.yarnpkg.com/@expo/vector-icons/-/vector-icons-15.0.2.tgz#64d380f04cf2bdeb1dac502c3a0d880b6c2a9e37" - integrity sha512-IiBjg7ZikueuHNf40wSGCf0zS73a3guJLdZzKnDUxsauB8VWPLMeWnRIupc+7cFhLUkqyvyo0jLNlcxG5xPOuQ== +"@expo/vector-icons@^15.0.3": + version "15.0.3" + resolved "https://registry.yarnpkg.com/@expo/vector-icons/-/vector-icons-15.0.3.tgz#12c38d4e6cc927dd0500e4591ac00672a8909748" + integrity sha512-SBUyYKphmlfUBqxSfDdJ3jAdEVSALS2VUPOUyqn48oZmb2TL/O7t7/PQm5v4NQujYEPLPMTLn9KVw6H7twwbTA== "@expo/ws-tunnel@^1.0.1": version "1.0.6" @@ -2010,23 +2010,23 @@ resolved "https://registry.yarnpkg.com/@react-native-firebase/messaging/-/messaging-23.4.0.tgz#dd667f3ef6e84cdf63cdf263d0a51318336061da" integrity sha512-wxdgl6teo+OsS4nG3KBQM8bFwmZNY4ZzR6UAYB0e7vvp0J/dMfduErkZ6uzEkEjjt2UsOeWB2PBLcgxKjYsX4A== -"@react-native/assets-registry@0.81.4": - version "0.81.4" - resolved "https://registry.yarnpkg.com/@react-native/assets-registry/-/assets-registry-0.81.4.tgz#bfa477c8e9d54d6ef4ab6e81b886d5be13c09fbd" - integrity sha512-AMcDadefBIjD10BRqkWw+W/VdvXEomR6aEZ0fhQRAv7igrBzb4PTn4vHKYg+sUK0e3wa74kcMy2DLc/HtnGcMA== +"@react-native/assets-registry@0.81.5": + version "0.81.5" + resolved "https://registry.yarnpkg.com/@react-native/assets-registry/-/assets-registry-0.81.5.tgz#d22c924fa6f6d4a463c5af34ce91f38756c0fa7d" + integrity sha512-705B6x/5Kxm1RKRvSv0ADYWm5JOnoiQ1ufW7h8uu2E6G9Of/eE6hP/Ivw3U5jI16ERqZxiKQwk34VJbB0niX9w== -"@react-native/babel-plugin-codegen@0.81.4": - version "0.81.4" - resolved "https://registry.yarnpkg.com/@react-native/babel-plugin-codegen/-/babel-plugin-codegen-0.81.4.tgz#0e513ac2108ff509eab1470982db472faab9ae46" - integrity sha512-6ztXf2Tl2iWznyI/Da/N2Eqymt0Mnn69GCLnEFxFbNdk0HxHPZBNWU9shTXhsLWOL7HATSqwg/bB1+3kY1q+mA== +"@react-native/babel-plugin-codegen@0.81.5": + version "0.81.5" + resolved "https://registry.yarnpkg.com/@react-native/babel-plugin-codegen/-/babel-plugin-codegen-0.81.5.tgz#328d03f42c32b5a8cc2dee1aa84a7c48dddc5f18" + integrity sha512-oF71cIH6je3fSLi6VPjjC3Sgyyn57JLHXs+mHWc9MoCiJJcM4nqsS5J38zv1XQ8d3zOW2JtHro+LF0tagj2bfQ== dependencies: "@babel/traverse" "^7.25.3" - "@react-native/codegen" "0.81.4" + "@react-native/codegen" "0.81.5" -"@react-native/babel-preset@0.81.4": - version "0.81.4" - resolved "https://registry.yarnpkg.com/@react-native/babel-preset/-/babel-preset-0.81.4.tgz#a9be20fb625014a65a51784b540992031bc12085" - integrity sha512-VYj0c/cTjQJn/RJ5G6P0L9wuYSbU9yGbPYDHCKstlQZQWkk+L9V8ZDbxdJBTIei9Xl3KPQ1odQ4QaeW+4v+AZg== +"@react-native/babel-preset@0.81.5": + version "0.81.5" + resolved "https://registry.yarnpkg.com/@react-native/babel-preset/-/babel-preset-0.81.5.tgz#e8b7969d21f87ef4e41e603248e8a70c44b4a5bb" + integrity sha512-UoI/x/5tCmi+pZ3c1+Ypr1DaRMDLI3y+Q70pVLLVgrnC3DHsHRIbHcCHIeG/IJvoeFqFM2sTdhSOLJrf8lOPrA== dependencies: "@babel/core" "^7.25.2" "@babel/plugin-proposal-export-default-from" "^7.24.7" @@ -2069,15 +2069,15 @@ "@babel/plugin-transform-typescript" "^7.25.2" "@babel/plugin-transform-unicode-regex" "^7.24.7" "@babel/template" "^7.25.0" - "@react-native/babel-plugin-codegen" "0.81.4" + "@react-native/babel-plugin-codegen" "0.81.5" babel-plugin-syntax-hermes-parser "0.29.1" babel-plugin-transform-flow-enums "^0.0.2" react-refresh "^0.14.0" -"@react-native/codegen@0.81.4": - version "0.81.4" - resolved "https://registry.yarnpkg.com/@react-native/codegen/-/codegen-0.81.4.tgz#eb884e2c3c6a46ccddbdfa6198705658e4a30c6c" - integrity sha512-LWTGUTzFu+qOQnvkzBP52B90Ym3stZT8IFCzzUrppz8Iwglg83FCtDZAR4yLHI29VY/x/+pkcWAMCl3739XHdw== +"@react-native/codegen@0.81.5": + version "0.81.5" + resolved "https://registry.yarnpkg.com/@react-native/codegen/-/codegen-0.81.5.tgz#d4dec668c94b9d58a5c2dbdbf026db331e1b6b27" + integrity sha512-a2TDA03Up8lpSa9sh5VRGCQDXgCTOyDOFH+aqyinxp1HChG8uk89/G+nkJ9FPd0rqgi25eCTR16TWdS3b+fA6g== dependencies: "@babel/core" "^7.25.2" "@babel/parser" "^7.25.3" @@ -2087,12 +2087,12 @@ nullthrows "^1.1.1" yargs "^17.6.2" -"@react-native/community-cli-plugin@0.81.4": - version "0.81.4" - resolved "https://registry.yarnpkg.com/@react-native/community-cli-plugin/-/community-cli-plugin-0.81.4.tgz#7bed570cec5277baa22a6eae0843abbd1345a290" - integrity sha512-8mpnvfcLcnVh+t1ok6V9eozWo8Ut+TZhz8ylJ6gF9d6q9EGDQX6s8jenan5Yv/pzN4vQEKI4ib2pTf/FELw+SA== +"@react-native/community-cli-plugin@0.81.5": + version "0.81.5" + resolved "https://registry.yarnpkg.com/@react-native/community-cli-plugin/-/community-cli-plugin-0.81.5.tgz#617789cda4da419d03dda00e2a78c36188b4391e" + integrity sha512-yWRlmEOtcyvSZ4+OvqPabt+NS36vg0K/WADTQLhrYrm9qdZSuXmq8PmdJWz/68wAqKQ+4KTILiq2kjRQwnyhQw== dependencies: - "@react-native/dev-middleware" "0.81.4" + "@react-native/dev-middleware" "0.81.5" debug "^4.4.0" invariant "^2.2.4" metro "^0.83.1" @@ -2100,18 +2100,18 @@ metro-core "^0.83.1" semver "^7.1.3" -"@react-native/debugger-frontend@0.81.4": - version "0.81.4" - resolved "https://registry.yarnpkg.com/@react-native/debugger-frontend/-/debugger-frontend-0.81.4.tgz#da05018377a6d24ed694057c3445907ba81413ae" - integrity sha512-SU05w1wD0nKdQFcuNC9D6De0ITnINCi8MEnx9RsTD2e4wN83ukoC7FpXaPCYyP6+VjFt5tUKDPgP1O7iaNXCqg== +"@react-native/debugger-frontend@0.81.5": + version "0.81.5" + resolved "https://registry.yarnpkg.com/@react-native/debugger-frontend/-/debugger-frontend-0.81.5.tgz#82ece0181e9a7a3dcbdfa86cf9decd654e13f81f" + integrity sha512-bnd9FSdWKx2ncklOetCgrlwqSGhMHP2zOxObJbOWXoj7GHEmih4MKarBo5/a8gX8EfA1EwRATdfNBQ81DY+h+w== -"@react-native/dev-middleware@0.81.4": - version "0.81.4" - resolved "https://registry.yarnpkg.com/@react-native/dev-middleware/-/dev-middleware-0.81.4.tgz#61271dbbd4ff92d7f53462f19f3273bc28bb8bf0" - integrity sha512-hu1Wu5R28FT7nHXs2wWXvQ++7W7zq5GPY83llajgPlYKznyPLAY/7bArc5rAzNB7b0kwnlaoPQKlvD/VP9LZug== +"@react-native/dev-middleware@0.81.5": + version "0.81.5" + resolved "https://registry.yarnpkg.com/@react-native/dev-middleware/-/dev-middleware-0.81.5.tgz#81e8ac545d7736ef6ebb2e59fdbaebc5cf9aedec" + integrity sha512-WfPfZzboYgo/TUtysuD5xyANzzfka8Ebni6RIb2wDxhb56ERi7qDrE4xGhtPsjCL4pQBXSVxyIlCy0d8I6EgGA== dependencies: "@isaacs/ttlcache" "^1.4.1" - "@react-native/debugger-frontend" "0.81.4" + "@react-native/debugger-frontend" "0.81.5" chrome-launcher "^0.15.2" chromium-edge-launcher "^0.2.0" connect "^3.6.5" @@ -2122,25 +2122,30 @@ serve-static "^1.16.2" ws "^6.2.3" -"@react-native/gradle-plugin@0.81.4": - version "0.81.4" - resolved "https://registry.yarnpkg.com/@react-native/gradle-plugin/-/gradle-plugin-0.81.4.tgz#249b7876df47a3ddefddffa71b1fd0193f7da376" - integrity sha512-T7fPcQvDDCSusZFVSg6H1oVDKb/NnVYLnsqkcHsAF2C2KGXyo3J7slH/tJAwNfj/7EOA2OgcWxfC1frgn9TQvw== +"@react-native/gradle-plugin@0.81.5": + version "0.81.5" + resolved "https://registry.yarnpkg.com/@react-native/gradle-plugin/-/gradle-plugin-0.81.5.tgz#a58830f38789f6254b64449a17fe57455b589d00" + integrity sha512-hORRlNBj+ReNMLo9jme3yQ6JQf4GZpVEBLxmTXGGlIL78MAezDZr5/uq9dwElSbcGmLEgeiax6e174Fie6qPLg== -"@react-native/js-polyfills@0.81.4": - version "0.81.4" - resolved "https://registry.yarnpkg.com/@react-native/js-polyfills/-/js-polyfills-0.81.4.tgz#cbc3924cfb994ed00ef841a796f54be21520d3b0" - integrity sha512-sr42FaypKXJHMVHhgSbu2f/ZJfrLzgaoQ+HdpRvKEiEh2mhFf6XzZwecyLBvWqf2pMPZa+CpPfNPiejXjKEy8w== +"@react-native/js-polyfills@0.81.5": + version "0.81.5" + resolved "https://registry.yarnpkg.com/@react-native/js-polyfills/-/js-polyfills-0.81.5.tgz#2ca68188c8fff9b951f507b1dec7efe928848274" + integrity sha512-fB7M1CMOCIUudTRuj7kzxIBTVw2KXnsgbQ6+4cbqSxo8NmRRhA0Ul4ZUzZj3rFd3VznTL4Brmocv1oiN0bWZ8w== "@react-native/normalize-colors@0.81.4": version "0.81.4" resolved "https://registry.yarnpkg.com/@react-native/normalize-colors/-/normalize-colors-0.81.4.tgz#a0384d5aaac825aeefa5e391947189f6cee4a641" integrity sha512-9nRRHO1H+tcFqjb9gAM105Urtgcanbta2tuqCVY0NATHeFPDEAB7gPyiLxCHKMi1NbhP6TH0kxgSWXKZl1cyRg== -"@react-native/virtualized-lists@0.81.4": - version "0.81.4" - resolved "https://registry.yarnpkg.com/@react-native/virtualized-lists/-/virtualized-lists-0.81.4.tgz#3c9c162fc96777c87ca07e8686f227343dbc8f13" - integrity sha512-hBM+rMyL6Wm1Q4f/WpqGsaCojKSNUBqAXLABNGoWm1vabZ7cSnARMxBvA/2vo3hLcoR4v7zDK8tkKm9+O0LjVA== +"@react-native/normalize-colors@0.81.5": + version "0.81.5" + resolved "https://registry.yarnpkg.com/@react-native/normalize-colors/-/normalize-colors-0.81.5.tgz#1ca6cb6772bb7324df2b11aab35227eacd6bdfe7" + integrity sha512-0HuJ8YtqlTVRXGZuGeBejLE04wSQsibpTI+RGOyVqxZvgtlLLC/Ssw0UmbHhT4lYMp2fhdtvKZSs5emWB1zR/g== + +"@react-native/virtualized-lists@0.81.5": + version "0.81.5" + resolved "https://registry.yarnpkg.com/@react-native/virtualized-lists/-/virtualized-lists-0.81.5.tgz#24123fded16992d7e46ecc4ccd473be939ea8c1b" + integrity sha512-UVXgV/db25OPIvwZySeToXD/9sKKhOdkcWmmf4Jh8iBZuyfML+/5CasaZ1E7Lqg6g3uqVQq75NqIwkYmORJMPw== dependencies: invariant "^2.2.4" nullthrows "^1.1.1" @@ -2248,10 +2253,12 @@ read-yaml-file "^2.1.0" strip-json-comments "^3.1.1" -"@shopify/flash-list@^2.1.0": - version "2.1.0" - resolved "https://registry.yarnpkg.com/@shopify/flash-list/-/flash-list-2.1.0.tgz#b1eefcf9fbd01ca04a5f24a6003cda3b46a59f64" - integrity sha512-/EIQlptG456yM5o9qNmNsmaZEFEOGvG3WGyb6GUAxSLlcKUGlPUkPI2NLW5wQSDEY4xSRa5zocUI+9xwmsM4Kg== +"@shopify/flash-list@2.0.2": + version "2.0.2" + resolved "https://registry.yarnpkg.com/@shopify/flash-list/-/flash-list-2.0.2.tgz#644748f883fccf8cf2e0ca251e0ef88673b89120" + integrity sha512-zhlrhA9eiuEzja4wxVvotgXHtqd3qsYbXkQ3rsBfOgbFA9BVeErpDE/yEwtlIviRGEqpuFj/oU5owD6ByaNX+w== + dependencies: + tslib "2.8.1" "@sinclair/typebox@^0.27.8": version "0.27.8" @@ -2630,10 +2637,10 @@ babel-plugin-polyfill-regenerator@^0.6.5: dependencies: "@babel/helper-define-polyfill-provider" "^0.6.5" -babel-plugin-react-compiler@^19.1.0-rc.2: - version "19.1.0-rc.3" - resolved "https://registry.yarnpkg.com/babel-plugin-react-compiler/-/babel-plugin-react-compiler-19.1.0-rc.3.tgz#45e5a282a2460b3701971e5eb8310a90a7919022" - integrity sha512-mjRn69WuTz4adL0bXGx8Rsyk1086zFJeKmes6aK0xPuK3aaXmDJdLHqwKKMrpm6KAI1MCoUK72d2VeqQbu8YIA== +babel-plugin-react-compiler@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/babel-plugin-react-compiler/-/babel-plugin-react-compiler-1.0.0.tgz#bdf7360a23a4d5ebfca090255da3893efd07425f" + integrity sha512-Ixm8tFfoKKIPYdCCKYTsqv+Fd4IJ0DQqMyEimo+pxUOMUR9cVPlwTrFt9Avu+3cb6Zp3mAzl+t1MrG2fxxKsxw== dependencies: "@babel/types" "^7.26.0" @@ -2677,10 +2684,10 @@ babel-preset-current-node-syntax@^1.0.0: "@babel/plugin-syntax-private-property-in-object" "^7.14.5" "@babel/plugin-syntax-top-level-await" "^7.14.5" -babel-preset-expo@~54.0.3: - version "54.0.3" - resolved "https://registry.yarnpkg.com/babel-preset-expo/-/babel-preset-expo-54.0.3.tgz#1b93cfdbf7c3cb1034770f368bc5cd46a977c179" - integrity sha512-zC6g96Mbf1bofnCI8yI0VKAp8/ER/gpfTsWOpQvStbHU+E4jFZ294n3unW8Hf6nNP4NoeNq9Zc6Prp0vwhxbow== +babel-preset-expo@~54.0.6: + version "54.0.6" + resolved "https://registry.yarnpkg.com/babel-preset-expo/-/babel-preset-expo-54.0.6.tgz#a0158c7a4eb7f52c8830d6e2bfdfa329043eaee2" + integrity sha512-GxJfwnuOPQJbzDe5WASJZdNQiukLw7i9z+Lh6JQWkUHXsShHyQrqgiKE55MD/KaP9VqJ70yZm7bYqOu8zwcWqQ== dependencies: "@babel/helper-module-imports" "^7.25.9" "@babel/plugin-proposal-decorators" "^7.12.9" @@ -2697,8 +2704,8 @@ babel-preset-expo@~54.0.3: "@babel/plugin-transform-runtime" "^7.24.7" "@babel/preset-react" "^7.22.15" "@babel/preset-typescript" "^7.23.0" - "@react-native/babel-preset" "0.81.4" - babel-plugin-react-compiler "^19.1.0-rc.2" + "@react-native/babel-preset" "0.81.5" + babel-plugin-react-compiler "^1.0.0" babel-plugin-react-native-web "~0.21.0" babel-plugin-syntax-hermes-parser "^0.29.1" babel-plugin-transform-flow-enums "^0.0.2" @@ -2837,25 +2844,6 @@ call-bind-apply-helpers@^1.0.1, call-bind-apply-helpers@^1.0.2: es-errors "^1.3.0" function-bind "^1.1.2" -caller-callsite@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/caller-callsite/-/caller-callsite-2.0.0.tgz#847e0fce0a223750a9a027c54b33731ad3154134" - integrity sha512-JuG3qI4QOftFsZyOn1qq87fq5grLIyk1JYd5lJmdA+fG7aQ9pA/i3JIJGcO3q0MrRcHlOt1U+ZeHW8Dq9axALQ== - dependencies: - callsites "^2.0.0" - -caller-path@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-2.0.0.tgz#468f83044e369ab2010fac5f06ceee15bb2cb1f4" - integrity sha512-MCL3sf6nCSXOwCTzvPKhN18TU7AHTvdtam8DAogxcrJ8Rjfbbg7Lgng64H9Iy+vUV6VGFClN/TyxBkAebLRR4A== - dependencies: - caller-callsite "^2.0.0" - -callsites@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/callsites/-/callsites-2.0.0.tgz#06eb84f00eea413da86affefacbffb36093b3c50" - integrity sha512-ksWePWBloaWPxJYQ8TL0JHvtci6G5QTKwQ95RcWAa/lzoAKuAOflGdAK92hpHXjkwb8zLxoLNUoNYZgVsaJzvQ== - camelcase@^5.3.1: version "5.3.1" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" @@ -3070,16 +3058,6 @@ core-js-compat@^3.43.0: dependencies: browserslist "^4.25.3" -cosmiconfig@^5.0.5: - version "5.2.1" - resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-5.2.1.tgz#040f726809c591e77a17c0a3626ca45b4f168b1a" - integrity sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA== - dependencies: - import-fresh "^2.0.0" - is-directory "^0.3.1" - js-yaml "^3.13.1" - parse-json "^4.0.0" - cross-spawn@^7.0.3, cross-spawn@^7.0.6: version "7.0.6" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.6.tgz#8a58fe78f00dcd70c370451759dfbfaf03e8ee9f" @@ -3322,13 +3300,6 @@ env-editor@^0.4.1: resolved "https://registry.yarnpkg.com/env-editor/-/env-editor-0.4.2.tgz#4e76568d0bd8f5c2b6d314a9412c8fe9aa3ae861" integrity sha512-ObFo8v4rQJAE59M69QzwloxPZtd33TpYEIjtKD1rrFDcM1Gd7IkDxEBU+HriziN6HSHQnBJi8Dmy+JWkav5HKA== -error-ex@^1.3.1: - version "1.3.4" - resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.4.tgz#b3a8d8bb6f92eecc1629e3e27d3c8607a8a32414" - integrity sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ== - dependencies: - is-arrayish "^0.2.1" - error-stack-parser@^2.0.6: version "2.1.4" resolved "https://registry.yarnpkg.com/error-stack-parser/-/error-stack-parser-2.1.4.tgz#229cb01cdbfa84440bfa91876285b94680188286" @@ -3416,10 +3387,10 @@ expo-asset@~12.0.9: "@expo/image-utils" "^0.8.7" expo-constants "~18.0.9" -expo-audio@~1.0.13: - version "1.0.13" - resolved "https://registry.yarnpkg.com/expo-audio/-/expo-audio-1.0.13.tgz#e9e79fece878296560f5d2f5080562232d0629e0" - integrity sha512-Z91jMYv/BMpn5Dkyu204RyNl2EpXRx8HgScTYlwRRYewtfTH8NN+bwZQAApn33NwGhW1cIlcuG/XCAeJBr9l4Q== +expo-audio@~1.0.14: + version "1.0.14" + resolved "https://registry.yarnpkg.com/expo-audio/-/expo-audio-1.0.14.tgz#c30108005c452291ed36295f0247ce880ff979b2" + integrity sha512-UU8n1mIDPfO9zFQbPnIpnzhHeqC8c8WQUoOOFvlgI5CeOJMUrQ6UXDpX+LBcHxw/amSBhF5HP6VMr58foPKwbA== expo-build-properties@~1.0.9: version "1.0.9" @@ -3434,6 +3405,14 @@ expo-clipboard@~8.0.7: resolved "https://registry.yarnpkg.com/expo-clipboard/-/expo-clipboard-8.0.7.tgz#f81d279036408bbe074ef748623e1ae6f170d391" integrity sha512-zvlfFV+wB2QQrQnHWlo0EKHAkdi2tycLtE+EXFUWTPZYkgu1XcH+aiKfd4ul7Z0SDF+1IuwoiW9AA9eO35aj3Q== +expo-constants@~18.0.10: + version "18.0.10" + resolved "https://registry.yarnpkg.com/expo-constants/-/expo-constants-18.0.10.tgz#92d4490d51193fc94bd40590453ce9cab4faf6fb" + integrity sha512-Rhtv+X974k0Cahmvx6p7ER5+pNhBC0XbP1lRviL2J1Xl4sT2FBaIuIxF/0I0CbhOsySf0ksqc5caFweAy9Ewiw== + dependencies: + "@expo/config" "~12.0.10" + "@expo/env" "~2.0.7" + expo-constants@~18.0.8, expo-constants@~18.0.9: version "18.0.9" resolved "https://registry.yarnpkg.com/expo-constants/-/expo-constants-18.0.9.tgz#fcaf37e97ea2b928bd3b92f2ea9836984ab6e48b" @@ -3501,29 +3480,28 @@ expo-location@~19.0.7: resolved "https://registry.yarnpkg.com/expo-location/-/expo-location-19.0.7.tgz#58ab5b9b59db3a26d0495c19e719d5f559948b1c" integrity sha512-YNkh4r9E6ECbPkBCAMG5A5yHDgS0pw+Rzyd0l2ZQlCtjkhlODB55nMCKr5CZnUI0mXTkaSm8CwfoCO8n2MpYfg== -expo-modules-autolinking@3.0.15: - version "3.0.15" - resolved "https://registry.yarnpkg.com/expo-modules-autolinking/-/expo-modules-autolinking-3.0.15.tgz#15e8483a30733d18f0709a64d282a03610c418a7" - integrity sha512-B6c+x664ImrWd+PknEy5454gtY6P0cMxj4P50fvLYP4HimbYj9SzwoHqZ/Rxh9NwxnUkT2nappk/USYIcPoS/A== +expo-modules-autolinking@3.0.20: + version "3.0.20" + resolved "https://registry.yarnpkg.com/expo-modules-autolinking/-/expo-modules-autolinking-3.0.20.tgz#d29fc6d642d98649ea1f0a2a971d60152986851d" + integrity sha512-W4XFE/A2ijrqvXYrwXug+cUQl6ALYKtsrGnd+xdnoZ+yC7HZag45CJ9mXR0qfLpwXxuBu0HDFh/a+a1MD0Ppdg== dependencies: "@expo/spawn-async" "^1.7.2" chalk "^4.1.0" commander "^7.2.0" - glob "^10.4.2" require-from-string "^2.0.2" resolve-from "^5.0.0" -expo-modules-core@3.0.21: - version "3.0.21" - resolved "https://registry.yarnpkg.com/expo-modules-core/-/expo-modules-core-3.0.21.tgz#26438c901e26184a40fe8f0d73a64f66a39c59b2" - integrity sha512-KJRzm0FEt/lfPNG+C6UUq+ta9PO10QPwY1HGCNkzPiRCIMJmQP4xRYK4Z7AxiYEYsPqr5OdjRW55kGZ4c5pzgA== +expo-modules-core@3.0.24: + version "3.0.24" + resolved "https://registry.yarnpkg.com/expo-modules-core/-/expo-modules-core-3.0.24.tgz#9e078938a9c081c87d827898a723ecf9016e2635" + integrity sha512-wmL0R3WVM2WEs0UJcq/rF1FKXbSrPmXozgzhCUujrb+crkW8p7Y/qKyPBAQwdwcqipuWYaFOgO49AdQ36jmvkA== dependencies: invariant "^2.2.4" -expo-router@~6.0.12: - version "6.0.12" - resolved "https://registry.yarnpkg.com/expo-router/-/expo-router-6.0.12.tgz#ec2ea4d8d35bd5cb6d005db44805680325fa6d09" - integrity sha512-GBfMHAbHoPv7aCfHOEgFNxcadw4euPyI/SqHNNtw+Sm+JtvauHP34wi7Bg25JxatHQ8EdhxAj6w0D8D6QRnayg== +expo-router@~6.0.14: + version "6.0.14" + resolved "https://registry.yarnpkg.com/expo-router/-/expo-router-6.0.14.tgz#92a125a8a051186aac59f60040a03c6f8353d21b" + integrity sha512-vizLO4SgnMEL+PPs2dXr+etEOuksjue7yUQBCtfCEdqoDkQlB0r35zI7rS34Wt53sxKWSlM2p+038qQEpxtiFw== dependencies: "@expo/metro-runtime" "^6.1.2" "@expo/schema-utils" "^0.1.7" @@ -3535,7 +3513,7 @@ expo-router@~6.0.12: client-only "^0.0.1" debug "^4.3.4" escape-string-regexp "^4.0.0" - expo-server "^1.0.1" + expo-server "^1.0.3" fast-deep-equal "^3.1.3" invariant "^2.2.4" nanoid "^3.3.8" @@ -3549,10 +3527,10 @@ expo-router@~6.0.12: use-latest-callback "^0.2.1" vaul "^1.1.2" -expo-server@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/expo-server/-/expo-server-1.0.1.tgz#9e04605310be090896a85aadce2cb7eaf6aae9b7" - integrity sha512-J3JlpzNXOkkr4BbapTrcv6klBQcw6NzrBBVIU7qkNE2eU3U1on9rp27wi0+cihjG/QgxSIqQVkrga5z3HWnH0A== +expo-server@^1.0.3, expo-server@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/expo-server/-/expo-server-1.0.4.tgz#cb90f23272257f8cb0c9dceaade26bb169d8a3f7" + integrity sha512-IN06r3oPxFh3plSXdvBL7dx0x6k+0/g0bgxJlNISs6qL5Z+gyPuWS750dpTzOeu37KyBG0RcyO9cXUKzjYgd4A== expo-sharing@~14.0.7: version "14.0.7" @@ -3573,34 +3551,34 @@ expo-status-bar@~3.0.8: dependencies: react-native-is-edge-to-edge "^1.2.1" -expo-video@~3.0.11: - version "3.0.11" - resolved "https://registry.yarnpkg.com/expo-video/-/expo-video-3.0.11.tgz#9ba2c4da694fe3d54f191f160702ddc70412e782" - integrity sha512-k/xz8Ml/LekuD2U2LomML2mUISvkHzYDz3fXY8Au1fEaYVNTfTs7Gyfo1lvF6S1X7u3XutoAfew8e8e1ZUR2fg== +expo-video@~3.0.14: + version "3.0.14" + resolved "https://registry.yarnpkg.com/expo-video/-/expo-video-3.0.14.tgz#aaf3dfefbc3c202f1267d8599aa2d3bf48a45ad1" + integrity sha512-k4vz9mUzrgUdVI0IKesWzkYCJw0yc2AKioN/riLg+X/dyR/GG6ej03nzqKd0KmPjtG6FcJEA0D/BuxCtU4OH1Q== -expo@54.0.13: - version "54.0.13" - resolved "https://registry.yarnpkg.com/expo/-/expo-54.0.13.tgz#e81897f3517487e4423d21eff7507d9d0c40e2f2" - integrity sha512-F1puKXzw8ESnsbvaKdXtcIiyYLQ2kUHqP8LuhgtJS1wm6w55VhtOPg8yl/0i8kPbTA0YfD+KYdXjSfhPXgUPxw== +expo@54.0.22: + version "54.0.22" + resolved "https://registry.yarnpkg.com/expo/-/expo-54.0.22.tgz#1615f35b2b46ca2bc9109482f1bd6e64eab30858" + integrity sha512-w8J89M9BdVwo6urwvPeV4nAUwykv9si1UHUfZvSVWQ/b2aGs0Ci/a5RZ550rdEBgJXZAapIAhdW2M28Ojw+oGg== dependencies: "@babel/runtime" "^7.20.0" - "@expo/cli" "54.0.11" + "@expo/cli" "54.0.15" "@expo/config" "~12.0.10" "@expo/config-plugins" "~54.0.2" "@expo/devtools" "0.1.7" - "@expo/fingerprint" "0.15.1" - "@expo/metro" "~54.0.0" - "@expo/metro-config" "54.0.6" - "@expo/vector-icons" "^15.0.2" + "@expo/fingerprint" "0.15.3" + "@expo/metro" "~54.1.0" + "@expo/metro-config" "54.0.8" + "@expo/vector-icons" "^15.0.3" "@ungap/structured-clone" "^1.3.0" - babel-preset-expo "~54.0.3" + babel-preset-expo "~54.0.6" expo-asset "~12.0.9" - expo-constants "~18.0.9" + expo-constants "~18.0.10" expo-file-system "~19.0.17" expo-font "~14.0.9" expo-keep-awake "~15.0.7" - expo-modules-autolinking "3.0.15" - expo-modules-core "3.0.21" + expo-modules-autolinking "3.0.20" + expo-modules-core "3.0.24" pretty-format "^29.7.0" react-refresh "^0.14.2" whatwg-url-without-unicode "8.0.0-3" @@ -4008,14 +3986,6 @@ image-size@^1.0.2: dependencies: queue "6.0.2" -import-fresh@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-2.0.0.tgz#d81355c15612d386c61f9ddd3922d4304822a546" - integrity sha512-eZ5H8rcgYazHbKC3PG4ClHNykCSxtAhxSSEM+2mb+7evD2CKF5V7c0dNum7AdpDh0ZdICwZY9sRSn8f+KH96sg== - dependencies: - caller-path "^2.0.0" - resolve-from "^3.0.0" - imurmurhash@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" @@ -4056,11 +4026,6 @@ invariant@^2.2.4: dependencies: loose-envify "^1.0.0" -is-arrayish@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" - integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg== - is-arrayish@^0.3.1: version "0.3.4" resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.3.4.tgz#1ee5553818511915685d33bb13d31bf854e5059d" @@ -4073,11 +4038,6 @@ is-core-module@^2.16.0: dependencies: hasown "^2.0.2" -is-directory@^0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/is-directory/-/is-directory-0.3.1.tgz#61339b6f2475fc772fd9c9d83f5c8575dc154ae1" - integrity sha512-yVChGzahRFvbkscn2MlwGismPO12i9+znNruC5gVEntG3qu0xQMzsGg/JFbrsqDOHtHFPci+V5aP5T9I+yeKqw== - is-docker@^2.0.0, is-docker@^2.1.1: version "2.2.1" resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.2.1.tgz#33eeabe23cfe86f14bde4408a02c0cfb853acdaa" @@ -4286,11 +4246,6 @@ jsesc@^3.0.2, jsesc@~3.1.0: resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-3.1.0.tgz#74d335a234f67ed19907fdadfac7ccf9d409825d" integrity sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA== -json-parse-better-errors@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" - integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== - json-schema-traverse@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2" @@ -4590,14 +4545,14 @@ merge2@^1.3.0: resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== -metro-babel-transformer@0.83.1: - version "0.83.1" - resolved "https://registry.yarnpkg.com/metro-babel-transformer/-/metro-babel-transformer-0.83.1.tgz#77e548b4b8f087fe30ffcd112826b371f83b597d" - integrity sha512-r3xAD3964E8dwDBaZNSO2aIIvWXjIK80uO2xo0/pi3WI8XWT9h5SCjtGWtMtE5PRWw+t20TN0q1WMRsjvhC1rQ== +metro-babel-transformer@0.83.2: + version "0.83.2" + resolved "https://registry.yarnpkg.com/metro-babel-transformer/-/metro-babel-transformer-0.83.2.tgz#d3885f2a266f01e43f16bdcfb786b1d8f1598f56" + integrity sha512-rirY1QMFlA1uxH3ZiNauBninwTioOgwChnRdDcbB4tgRZ+bGX9DiXoh9QdpppiaVKXdJsII932OwWXGGV4+Nlw== dependencies: "@babel/core" "^7.25.2" flow-enums-runtime "^0.0.6" - hermes-parser "0.29.1" + hermes-parser "0.32.0" nullthrows "^1.1.1" metro-babel-transformer@0.83.3: @@ -4610,10 +4565,10 @@ metro-babel-transformer@0.83.3: hermes-parser "0.32.0" nullthrows "^1.1.1" -metro-cache-key@0.83.1: - version "0.83.1" - resolved "https://registry.yarnpkg.com/metro-cache-key/-/metro-cache-key-0.83.1.tgz#18c59c7c6944cfa0856d57ff5ebbdc18dec12687" - integrity sha512-ZUs+GD5CNeDLxx5UUWmfg26IL+Dnbryd+TLqTlZnDEgehkIa11kUSvgF92OFfJhONeXzV4rZDRGNXoo6JT+8Gg== +metro-cache-key@0.83.2: + version "0.83.2" + resolved "https://registry.yarnpkg.com/metro-cache-key/-/metro-cache-key-0.83.2.tgz#b34427fdafe551d567ac312f8a3c7e334a20f796" + integrity sha512-3EMG/GkGKYoTaf5RqguGLSWRqGTwO7NQ0qXKmNBjr0y6qD9s3VBXYlwB+MszGtmOKsqE9q3FPrE5Nd9Ipv7rZw== dependencies: flow-enums-runtime "^0.0.6" @@ -4624,15 +4579,15 @@ metro-cache-key@0.83.3: dependencies: flow-enums-runtime "^0.0.6" -metro-cache@0.83.1: - version "0.83.1" - resolved "https://registry.yarnpkg.com/metro-cache/-/metro-cache-0.83.1.tgz#bc1319d44934d0935ec4eaf10d28b90ec6ce0aac" - integrity sha512-7N/Ad1PHa1YMWDNiyynTPq34Op2qIE68NWryGEQ4TSE3Zy6a8GpsYnEEZE4Qi6aHgsE+yZHKkRczeBgxhnFIxQ== +metro-cache@0.83.2: + version "0.83.2" + resolved "https://registry.yarnpkg.com/metro-cache/-/metro-cache-0.83.2.tgz#d647d9253312801b19c4930be586c60976244540" + integrity sha512-Z43IodutUZeIS7OTH+yQFjc59QlFJ6s5OvM8p2AP9alr0+F8UKr8ADzFzoGKoHefZSKGa4bJx7MZJLF6GwPDHQ== dependencies: exponential-backoff "^3.1.1" flow-enums-runtime "^0.0.6" https-proxy-agent "^7.0.5" - metro-core "0.83.1" + metro-core "0.83.2" metro-cache@0.83.3: version "0.83.3" @@ -4644,19 +4599,19 @@ metro-cache@0.83.3: https-proxy-agent "^7.0.5" metro-core "0.83.3" -metro-config@0.83.1: - version "0.83.1" - resolved "https://registry.yarnpkg.com/metro-config/-/metro-config-0.83.1.tgz#28db7ae553883802c30b1eb374817ad1e686e7b4" - integrity sha512-HJhpZx3wyOkux/jeF1o7akFJzZFdbn6Zf7UQqWrvp7gqFqNulQ8Mju09raBgPmmSxKDl4LbbNeigkX0/nKY1QA== +metro-config@0.83.2: + version "0.83.2" + resolved "https://registry.yarnpkg.com/metro-config/-/metro-config-0.83.2.tgz#5ab5eba754c7affd0f3e44be98543aea37c9fab7" + integrity sha512-1FjCcdBe3e3D08gSSiU9u3Vtxd7alGH3x/DNFqWDFf5NouX4kLgbVloDDClr1UrLz62c0fHh2Vfr9ecmrOZp+g== dependencies: connect "^3.6.5" - cosmiconfig "^5.0.5" flow-enums-runtime "^0.0.6" jest-validate "^29.7.0" - metro "0.83.1" - metro-cache "0.83.1" - metro-core "0.83.1" - metro-runtime "0.83.1" + metro "0.83.2" + metro-cache "0.83.2" + metro-core "0.83.2" + metro-runtime "0.83.2" + yaml "^2.6.1" metro-config@0.83.3, metro-config@^0.83.1: version "0.83.3" @@ -4672,14 +4627,14 @@ metro-config@0.83.3, metro-config@^0.83.1: metro-runtime "0.83.3" yaml "^2.6.1" -metro-core@0.83.1: - version "0.83.1" - resolved "https://registry.yarnpkg.com/metro-core/-/metro-core-0.83.1.tgz#fbedf8c6cfdcc58eaec7011718f1041ac9562cff" - integrity sha512-uVL1eAJcMFd2o2Q7dsbpg8COaxjZBBGaXqO2OHnivpCdfanraVL8dPmY6It9ZeqWLOihUKZ2yHW4b6soVCzH/Q== +metro-core@0.83.2: + version "0.83.2" + resolved "https://registry.yarnpkg.com/metro-core/-/metro-core-0.83.2.tgz#8b6292482c8cd88bae5f56c5f4903ef7ee292631" + integrity sha512-8DRb0O82Br0IW77cNgKMLYWUkx48lWxUkvNUxVISyMkcNwE/9ywf1MYQUE88HaKwSrqne6kFgCSA/UWZoUT0Iw== dependencies: flow-enums-runtime "^0.0.6" lodash.throttle "^4.1.1" - metro-resolver "0.83.1" + metro-resolver "0.83.2" metro-core@0.83.3, metro-core@^0.83.1: version "0.83.3" @@ -4690,10 +4645,10 @@ metro-core@0.83.3, metro-core@^0.83.1: lodash.throttle "^4.1.1" metro-resolver "0.83.3" -metro-file-map@0.83.1: - version "0.83.1" - resolved "https://registry.yarnpkg.com/metro-file-map/-/metro-file-map-0.83.1.tgz#9c9a295edd0eb234f23b44952786f0e95c3b2d8d" - integrity sha512-Yu429lnexKl44PttKw3nhqgmpBR+6UQ/tRaYcxPeEShtcza9DWakCn7cjqDTQZtWR2A8xSNv139izJMyQ4CG+w== +metro-file-map@0.83.2: + version "0.83.2" + resolved "https://registry.yarnpkg.com/metro-file-map/-/metro-file-map-0.83.2.tgz#8f943d608f27216fde8dd91787294b5a9409752e" + integrity sha512-cMSWnEqZrp/dzZIEd7DEDdk72PXz6w5NOKriJoDN9p1TDQ5nAYrY2lHi8d6mwbcGLoSlWmpPyny9HZYFfPWcGQ== dependencies: debug "^4.4.0" fb-watchman "^2.0.0" @@ -4720,10 +4675,10 @@ metro-file-map@0.83.3: nullthrows "^1.1.1" walker "^1.0.7" -metro-minify-terser@0.83.1: - version "0.83.1" - resolved "https://registry.yarnpkg.com/metro-minify-terser/-/metro-minify-terser-0.83.1.tgz#227f534876fb8eb089b64d7bff8cf77d1817c8f4" - integrity sha512-kmooOxXLvKVxkh80IVSYO4weBdJDhCpg5NSPkjzzAnPJP43u6+usGXobkTWxxrAlq900bhzqKek4pBsUchlX6A== +metro-minify-terser@0.83.2: + version "0.83.2" + resolved "https://registry.yarnpkg.com/metro-minify-terser/-/metro-minify-terser-0.83.2.tgz#17ea8aef987970f8505ed8f890ab00c47c419608" + integrity sha512-zvIxnh7U0JQ7vT4quasKsijId3dOAWgq+ip2jF/8TMrPUqQabGrs04L2dd0haQJ+PA+d4VvK/bPOY8X/vL2PWw== dependencies: flow-enums-runtime "^0.0.6" terser "^5.15.0" @@ -4736,10 +4691,10 @@ metro-minify-terser@0.83.3: flow-enums-runtime "^0.0.6" terser "^5.15.0" -metro-resolver@0.83.1: - version "0.83.1" - resolved "https://registry.yarnpkg.com/metro-resolver/-/metro-resolver-0.83.1.tgz#2e14c8b0762883f3568f41cde08f4a48893021ce" - integrity sha512-t8j46kiILAqqFS5RNa+xpQyVjULxRxlvMidqUswPEk5nQVNdlJslqizDm/Et3v/JKwOtQGkYAQCHxP1zGStR/g== +metro-resolver@0.83.2: + version "0.83.2" + resolved "https://registry.yarnpkg.com/metro-resolver/-/metro-resolver-0.83.2.tgz#d4a40a602615baacfb94d8a773e8b93eaac70d0f" + integrity sha512-Yf5mjyuiRE/Y+KvqfsZxrbHDA15NZxyfg8pIk0qg47LfAJhpMVEX+36e6ZRBq7KVBqy6VDX5Sq55iHGM4xSm7Q== dependencies: flow-enums-runtime "^0.0.6" @@ -4750,10 +4705,10 @@ metro-resolver@0.83.3: dependencies: flow-enums-runtime "^0.0.6" -metro-runtime@0.83.1: - version "0.83.1" - resolved "https://registry.yarnpkg.com/metro-runtime/-/metro-runtime-0.83.1.tgz#5835c57c20cb89db45c48abb4bdae0246529a21b" - integrity sha512-3Ag8ZS4IwafL/JUKlaeM6/CbkooY+WcVeqdNlBG0m4S0Qz0om3rdFdy1y6fYBpl6AwXJwWeMuXrvZdMuByTcRA== +metro-runtime@0.83.2: + version "0.83.2" + resolved "https://registry.yarnpkg.com/metro-runtime/-/metro-runtime-0.83.2.tgz#77c9715483fd3d449407435c1c160f7410c588d7" + integrity sha512-nnsPtgRvFbNKwemqs0FuyFDzXLl+ezuFsUXDbX8o0SXOfsOPijqiQrf3kuafO1Zx1aUWf4NOrKJMAQP5EEHg9A== dependencies: "@babel/runtime" "^7.25.0" flow-enums-runtime "^0.0.6" @@ -4766,19 +4721,19 @@ metro-runtime@0.83.3, metro-runtime@^0.83.1: "@babel/runtime" "^7.25.0" flow-enums-runtime "^0.0.6" -metro-source-map@0.83.1: - version "0.83.1" - resolved "https://registry.yarnpkg.com/metro-source-map/-/metro-source-map-0.83.1.tgz#afaeccad77f543eebfe22ecc1d94c0b58c721946" - integrity sha512-De7Vbeo96fFZ2cqmI0fWwVJbtHIwPZv++LYlWSwzTiCzxBDJORncN0LcT48Vi2UlQLzXJg+/CuTAcy7NBVh69A== +metro-source-map@0.83.2: + version "0.83.2" + resolved "https://registry.yarnpkg.com/metro-source-map/-/metro-source-map-0.83.2.tgz#5688eeb3fc85a1ca0f5f5efede2257a872e2b9fe" + integrity sha512-5FL/6BSQvshIKjXOennt9upFngq2lFvDakZn5LfauIVq8+L4sxXewIlSTcxAtzbtjAIaXeOSVMtCJ5DdfCt9AA== dependencies: "@babel/traverse" "^7.25.3" "@babel/traverse--for-generate-function-map" "npm:@babel/traverse@^7.25.3" "@babel/types" "^7.25.2" flow-enums-runtime "^0.0.6" invariant "^2.2.4" - metro-symbolicate "0.83.1" + metro-symbolicate "0.83.2" nullthrows "^1.1.1" - ob1 "0.83.1" + ob1 "0.83.2" source-map "^0.5.6" vlq "^1.0.0" @@ -4798,14 +4753,14 @@ metro-source-map@0.83.3, metro-source-map@^0.83.1: source-map "^0.5.6" vlq "^1.0.0" -metro-symbolicate@0.83.1: - version "0.83.1" - resolved "https://registry.yarnpkg.com/metro-symbolicate/-/metro-symbolicate-0.83.1.tgz#c03edc8e7c0e8b44821f2a807c0a8342aaeb77eb" - integrity sha512-wPxYkONlq/Sv8Ji7vHEx5OzFouXAMQJjpcPW41ySKMLP/Ir18SsiJK2h4YkdKpYrTS1+0xf8oqF6nxCsT3uWtg== +metro-symbolicate@0.83.2: + version "0.83.2" + resolved "https://registry.yarnpkg.com/metro-symbolicate/-/metro-symbolicate-0.83.2.tgz#63a5f31cdb6db17371a00d259890643d84a75549" + integrity sha512-KoU9BLwxxED6n33KYuQQuc5bXkIxF3fSwlc3ouxrrdLWwhu64muYZNQrukkWzhVKRNFIXW7X2iM8JXpi2heIPw== dependencies: flow-enums-runtime "^0.0.6" invariant "^2.2.4" - metro-source-map "0.83.1" + metro-source-map "0.83.2" nullthrows "^1.1.1" source-map "^0.5.6" vlq "^1.0.0" @@ -4822,10 +4777,10 @@ metro-symbolicate@0.83.3: source-map "^0.5.6" vlq "^1.0.0" -metro-transform-plugins@0.83.1: - version "0.83.1" - resolved "https://registry.yarnpkg.com/metro-transform-plugins/-/metro-transform-plugins-0.83.1.tgz#879b8ff34c3720d387889da60c03923394457988" - integrity sha512-1Y+I8oozXwhuS0qwC+ezaHXBf0jXW4oeYn4X39XWbZt9X2HfjodqY9bH9r6RUTsoiK7S4j8Ni2C91bUC+sktJQ== +metro-transform-plugins@0.83.2: + version "0.83.2" + resolved "https://registry.yarnpkg.com/metro-transform-plugins/-/metro-transform-plugins-0.83.2.tgz#c4353147212cad1c76dcea8fd93c7f0c7b09b3a4" + integrity sha512-5WlW25WKPkiJk2yA9d8bMuZrgW7vfA4f4MBb9ZeHbTB3eIAoNN8vS8NENgG/X/90vpTB06X66OBvxhT3nHwP6A== dependencies: "@babel/core" "^7.25.2" "@babel/generator" "^7.25.0" @@ -4846,23 +4801,23 @@ metro-transform-plugins@0.83.3: flow-enums-runtime "^0.0.6" nullthrows "^1.1.1" -metro-transform-worker@0.83.1: - version "0.83.1" - resolved "https://registry.yarnpkg.com/metro-transform-worker/-/metro-transform-worker-0.83.1.tgz#47aa09f085fe4f859215506de886f1cb7deb300a" - integrity sha512-owCrhPyUxdLgXEEEAL2b14GWTPZ2zYuab1VQXcfEy0sJE71iciD7fuMcrngoufh7e7UHDZ56q4ktXg8wgiYA1Q== +metro-transform-worker@0.83.2: + version "0.83.2" + resolved "https://registry.yarnpkg.com/metro-transform-worker/-/metro-transform-worker-0.83.2.tgz#f97367b6384be87ea216a97072810705c19c3775" + integrity sha512-G5DsIg+cMZ2KNfrdLnWMvtppb3+Rp1GMyj7Bvd9GgYc/8gRmvq1XVEF9XuO87Shhb03kFhGqMTgZerz3hZ1v4Q== dependencies: "@babel/core" "^7.25.2" "@babel/generator" "^7.25.0" "@babel/parser" "^7.25.3" "@babel/types" "^7.25.2" flow-enums-runtime "^0.0.6" - metro "0.83.1" - metro-babel-transformer "0.83.1" - metro-cache "0.83.1" - metro-cache-key "0.83.1" - metro-minify-terser "0.83.1" - metro-source-map "0.83.1" - metro-transform-plugins "0.83.1" + metro "0.83.2" + metro-babel-transformer "0.83.2" + metro-cache "0.83.2" + metro-cache-key "0.83.2" + metro-minify-terser "0.83.2" + metro-source-map "0.83.2" + metro-transform-plugins "0.83.2" nullthrows "^1.1.1" metro-transform-worker@0.83.3: @@ -4884,10 +4839,10 @@ metro-transform-worker@0.83.3: metro-transform-plugins "0.83.3" nullthrows "^1.1.1" -metro@0.83.1: - version "0.83.1" - resolved "https://registry.yarnpkg.com/metro/-/metro-0.83.1.tgz#9f9c138793288cbf9fb26aa84e0693df85607875" - integrity sha512-UGKepmTxoGD4HkQV8YWvpvwef7fUujNtTgG4Ygf7m/M0qjvb9VuDmAsEU+UdriRX7F61pnVK/opz89hjKlYTXA== +metro@0.83.2: + version "0.83.2" + resolved "https://registry.yarnpkg.com/metro/-/metro-0.83.2.tgz#a56d31a604819951c8b9cf19d570897341e29b07" + integrity sha512-HQgs9H1FyVbRptNSMy/ImchTTE5vS2MSqLoOo7hbDoBq6hPPZokwJvBMwrYSxdjQZmLXz2JFZtdvS+ZfgTc9yw== dependencies: "@babel/code-frame" "^7.24.7" "@babel/core" "^7.25.2" @@ -4904,24 +4859,24 @@ metro@0.83.1: error-stack-parser "^2.0.6" flow-enums-runtime "^0.0.6" graceful-fs "^4.2.4" - hermes-parser "0.29.1" + hermes-parser "0.32.0" image-size "^1.0.2" invariant "^2.2.4" jest-worker "^29.7.0" jsc-safe-url "^0.2.2" lodash.throttle "^4.1.1" - metro-babel-transformer "0.83.1" - metro-cache "0.83.1" - metro-cache-key "0.83.1" - metro-config "0.83.1" - metro-core "0.83.1" - metro-file-map "0.83.1" - metro-resolver "0.83.1" - metro-runtime "0.83.1" - metro-source-map "0.83.1" - metro-symbolicate "0.83.1" - metro-transform-plugins "0.83.1" - metro-transform-worker "0.83.1" + metro-babel-transformer "0.83.2" + metro-cache "0.83.2" + metro-cache-key "0.83.2" + metro-config "0.83.2" + metro-core "0.83.2" + metro-file-map "0.83.2" + metro-resolver "0.83.2" + metro-runtime "0.83.2" + metro-source-map "0.83.2" + metro-symbolicate "0.83.2" + metro-transform-plugins "0.83.2" + metro-transform-worker "0.83.2" mime-types "^2.1.27" nullthrows "^1.1.1" serialize-error "^2.1.0" @@ -5133,10 +5088,10 @@ nullthrows@^1.1.1: resolved "https://registry.yarnpkg.com/nullthrows/-/nullthrows-1.1.1.tgz#7818258843856ae971eae4208ad7d7eb19a431b1" integrity sha512-2vPPEi+Z7WqML2jZYddDIfy5Dqb0r2fze2zTxNNknZaFpVHU3mFB3R+DWeJWGVx0ecvttSGlJTI+WG+8Z4cDWw== -ob1@0.83.1: - version "0.83.1" - resolved "https://registry.yarnpkg.com/ob1/-/ob1-0.83.1.tgz#32f5c9e3f8cc5a6ecb1cb344e87a6e39a93f848a" - integrity sha512-ngwqewtdUzFyycomdbdIhFLjePPSOt1awKMUXQ0L7iLHgWEPF3DsCerblzjzfAUHaXuvE9ccJymWQ/4PNNqvnQ== +ob1@0.83.2: + version "0.83.2" + resolved "https://registry.yarnpkg.com/ob1/-/ob1-0.83.2.tgz#23c2e58b7d542fb01e627049710334d14c287cf8" + integrity sha512-XlK3w4M+dwd1g1gvHzVbxiXEbUllRONEgcF2uEO0zm4nxa0eKlh41c6N65q1xbiDOeKKda1tvNOAD33fNjyvCg== dependencies: flow-enums-runtime "^0.0.6" @@ -5252,14 +5207,6 @@ package-json-from-dist@^1.0.0: resolved "https://registry.yarnpkg.com/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz#4f1471a010827a86f94cfd9b0727e36d267de505" integrity sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw== -parse-json@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0" - integrity sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw== - dependencies: - error-ex "^1.3.1" - json-parse-better-errors "^1.0.1" - parse-png@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/parse-png/-/parse-png-2.1.0.tgz#2a42ad719fedf90f81c59ebee7ae59b280d6b338" @@ -5599,19 +5546,19 @@ react-native-worklets@0.5.1: convert-source-map "^2.0.0" semver "7.7.2" -react-native@0.81.4: - version "0.81.4" - resolved "https://registry.yarnpkg.com/react-native/-/react-native-0.81.4.tgz#d5e9d0a71ed2e80a550a6c358f2ce3ddb6f5b119" - integrity sha512-bt5bz3A/+Cv46KcjV0VQa+fo7MKxs17RCcpzjftINlen4ZDUl0I6Ut+brQ2FToa5oD0IB0xvQHfmsg2EDqsZdQ== +react-native@0.81.5: + version "0.81.5" + resolved "https://registry.yarnpkg.com/react-native/-/react-native-0.81.5.tgz#6c963f137d3979b22aef2d8482067775c8fe2fed" + integrity sha512-1w+/oSjEXZjMqsIvmkCRsOc8UBYv163bTWKTI8+1mxztvQPhCRYGTvZ/PL1w16xXHneIj/SLGfxWg2GWN2uexw== dependencies: "@jest/create-cache-key-function" "^29.7.0" - "@react-native/assets-registry" "0.81.4" - "@react-native/codegen" "0.81.4" - "@react-native/community-cli-plugin" "0.81.4" - "@react-native/gradle-plugin" "0.81.4" - "@react-native/js-polyfills" "0.81.4" - "@react-native/normalize-colors" "0.81.4" - "@react-native/virtualized-lists" "0.81.4" + "@react-native/assets-registry" "0.81.5" + "@react-native/codegen" "0.81.5" + "@react-native/community-cli-plugin" "0.81.5" + "@react-native/gradle-plugin" "0.81.5" + "@react-native/js-polyfills" "0.81.5" + "@react-native/normalize-colors" "0.81.5" + "@react-native/virtualized-lists" "0.81.5" abort-controller "^3.0.0" anser "^1.4.9" ansi-regex "^5.0.0" @@ -5744,11 +5691,6 @@ requireg@^0.2.2: rc "~1.2.7" resolve "~1.7.1" -resolve-from@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748" - integrity sha512-GnlH6vxLymXJNMBo7XP1fJIzBFbdYt49CuTwmB/6N53t+kMPRMFKz783LlQ4tv28XoQfMWinAJX6WCGf2IlaIw== - resolve-from@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" @@ -6323,7 +6265,7 @@ ts-interface-checker@^0.1.9: resolved "https://registry.yarnpkg.com/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz#784fd3d679722bc103b1b4b8030bcddb5db2a699" integrity sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA== -tslib@^2.0.0, tslib@^2.1.0: +tslib@2.8.1, tslib@^2.0.0, tslib@^2.1.0: version "2.8.1" resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.8.1.tgz#612efe4ed235d567e8aba5f2a5fab70280ade83f" integrity sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w== diff --git a/examples/SampleApp/babel.config.js b/examples/SampleApp/babel.config.js index 8ba8eb658c..7f3f8d90b6 100644 --- a/examples/SampleApp/babel.config.js +++ b/examples/SampleApp/babel.config.js @@ -1,4 +1,4 @@ module.exports = { presets: ['module:@react-native/babel-preset'], - plugins: ['react-native-worklets/plugin'], + plugins: ['babel-plugin-react-compiler', 'react-native-worklets/plugin'], }; diff --git a/examples/SampleApp/package.json b/examples/SampleApp/package.json index cd15171e5e..5da8d63f2a 100644 --- a/examples/SampleApp/package.json +++ b/examples/SampleApp/package.json @@ -75,6 +75,7 @@ "@types/lodash.mergewith": "^4.6.9", "@types/react": "^19.1.0", "@types/react-test-renderer": "^19.1.0", + "babel-plugin-react-compiler": "^1.0.0", "eslint": "^9.28.0", "eslint-plugin-eslint-comments": "^3.2.0", "eslint-plugin-jest": "^28.13.3", diff --git a/examples/SampleApp/yarn.lock b/examples/SampleApp/yarn.lock index ee947e320f..3737289497 100644 --- a/examples/SampleApp/yarn.lock +++ b/examples/SampleApp/yarn.lock @@ -355,6 +355,11 @@ resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.27.1.tgz#a7054dcc145a967dd4dc8fee845a57c1316c9df8" integrity sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow== +"@babel/helper-validator-identifier@^7.28.5": + version "7.28.5" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz#010b6938fab7cb7df74aa2bbc06aa503b8fe5fb4" + integrity sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q== + "@babel/helper-validator-option@^7.25.9": version "7.25.9" resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.25.9.tgz#86e45bd8a49ab7e03f276577f96179653d41da72" @@ -1033,6 +1038,14 @@ "@babel/helper-string-parser" "^7.25.9" "@babel/helper-validator-identifier" "^7.25.9" +"@babel/types@^7.26.0": + version "7.28.5" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.28.5.tgz#10fc405f60897c35f07e85493c932c7b5ca0592b" + integrity sha512-qQ5m48eI/MFLQ5PxQj4PFaprjyCTLI37ElWMmNs0K8Lk3dVeOdNpB3ks8jc7yM5CDmVC73eMVk/trk3fgmrUpA== + dependencies: + "@babel/helper-string-parser" "^7.27.1" + "@babel/helper-validator-identifier" "^7.28.5" + "@babel/types@^7.27.1", "@babel/types@^7.27.3", "@babel/types@^7.27.6": version "7.27.6" resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.27.6.tgz#a434ca7add514d4e646c80f7375c0aa2befc5535" @@ -3662,6 +3675,13 @@ babel-plugin-polyfill-regenerator@^0.6.1: dependencies: "@babel/helper-define-polyfill-provider" "^0.6.3" +babel-plugin-react-compiler@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/babel-plugin-react-compiler/-/babel-plugin-react-compiler-1.0.0.tgz#bdf7360a23a4d5ebfca090255da3893efd07425f" + integrity sha512-Ixm8tFfoKKIPYdCCKYTsqv+Fd4IJ0DQqMyEimo+pxUOMUR9cVPlwTrFt9Avu+3cb6Zp3mAzl+t1MrG2fxxKsxw== + dependencies: + "@babel/types" "^7.26.0" + babel-plugin-syntax-hermes-parser@0.28.1: version "0.28.1" resolved "https://registry.yarnpkg.com/babel-plugin-syntax-hermes-parser/-/babel-plugin-syntax-hermes-parser-0.28.1.tgz#9e80a774ddb8038307a62316486669c668fb3568" diff --git a/package/src/components/Poll/components/PollAnswersList.tsx b/package/src/components/Poll/components/PollAnswersList.tsx index 37dc7f1235..0ccfed1bb7 100644 --- a/package/src/components/Poll/components/PollAnswersList.tsx +++ b/package/src/components/Poll/components/PollAnswersList.tsx @@ -126,7 +126,7 @@ export const PollAnswerListItem = ({ answer }: { answer: PollAnswer }) => { ); }; -const PollAnswerListItemComponent = ({ item }: { item: PollAnswer }) => ( +const renderPollAnswerListItem = ({ item }: { item: PollAnswer }) => ( ); @@ -149,7 +149,7 @@ export const PollAnswersListContent = ({ data={pollAnswers} keyExtractor={(item) => `poll_answer_${item.id}`} onEndReached={() => hasNextPage && loadMore()} - renderItem={PollAnswerListItemComponent} + renderItem={renderPollAnswerListItem} {...additionalFlatListProps} /> diff --git a/package/src/components/Poll/components/PollResults/PollOptionFullResults.tsx b/package/src/components/Poll/components/PollResults/PollOptionFullResults.tsx index 7c2d111c75..0b81cb2bbc 100644 --- a/package/src/components/Poll/components/PollResults/PollOptionFullResults.tsx +++ b/package/src/components/Poll/components/PollResults/PollOptionFullResults.tsx @@ -21,7 +21,7 @@ export type PollOptionFullResultsProps = PollContextValue & { PollOptionFullResultsContent?: React.ComponentType<{ option: PollOption }>; }; -export const PollOptionFullResultsItem = ({ item }: { item: PollVoteClass }) => ( +export const renderPollOptionFullResultsItem = ({ item }: { item: PollVoteClass }) => ( ); @@ -65,7 +65,7 @@ export const PollOptionFullResultsContent = ({ keyExtractor={(item) => `option_full_results_${item.id}`} ListHeaderComponent={PollOptionFullResultsHeader} onEndReached={() => hasNextPage && loadMore()} - renderItem={PollOptionFullResultsItem} + renderItem={renderPollOptionFullResultsItem} {...additionalFlatListProps} /> From 0c0399266c7c8c9bdf99145fa81f37f39b972cf9 Mon Sep 17 00:00:00 2001 From: Khushal Agarwal Date: Wed, 19 Nov 2025 16:31:18 +0530 Subject: [PATCH 2/6] fix: export hooks and add message info read and delivery UI (#3291) --- .../src/components/MessageInfoBottomSheet.tsx | 102 ++++++++++++++++++ .../SampleApp/src/screens/ChannelScreen.tsx | 24 ++++- .../SampleApp/src/utils/messageActions.tsx | 16 ++- package/src/components/Message/Message.tsx | 6 +- .../Message/hooks/useMessageDeliveryData.ts | 16 +-- .../Message/hooks/useMessageReadData.ts | 16 +-- package/src/components/index.ts | 3 + 7 files changed, 164 insertions(+), 19 deletions(-) create mode 100644 examples/SampleApp/src/components/MessageInfoBottomSheet.tsx diff --git a/examples/SampleApp/src/components/MessageInfoBottomSheet.tsx b/examples/SampleApp/src/components/MessageInfoBottomSheet.tsx new file mode 100644 index 0000000000..b989c32203 --- /dev/null +++ b/examples/SampleApp/src/components/MessageInfoBottomSheet.tsx @@ -0,0 +1,102 @@ +import React, { useMemo } from 'react'; +import BottomSheet, { BottomSheetFlatList } from '@gorhom/bottom-sheet'; +import { BottomSheetView } from '@gorhom/bottom-sheet'; +import { + Avatar, + useChatContext, + useMessageDeliveredData, + useMessageReadData, + useTheme, +} from 'stream-chat-react-native'; +import { LocalMessage, UserResponse } from 'stream-chat'; +import { StyleSheet, Text, View } from 'react-native'; + +const renderUserItem = ({ item }: { item: UserResponse }) => ( + + + {item.name ?? item.id} + +); + +const renderEmptyText = ({ text }: { text: string }) => ( + {text} +); + +export const MessageInfoBottomSheet = ({ + message, + ref, +}: { + message?: LocalMessage; + ref: React.RefObject; +}) => { + const { + theme: { colors }, + } = useTheme(); + const { client } = useChatContext(); + const deliveredStatus = useMessageDeliveredData({ message }); + const readStatus = useMessageReadData({ message }); + + const otherDeliveredToUsers = useMemo(() => { + return deliveredStatus.filter((user: UserResponse) => user.id !== client?.user?.id); + }, [deliveredStatus, client?.user?.id]); + + const otherReadUsers = useMemo(() => { + return readStatus.filter((user: UserResponse) => user.id !== client?.user?.id); + }, [readStatus, client?.user?.id]); + + return ( + + + Read + item.id} + style={styles.flatList} + ListEmptyComponent={renderEmptyText({ text: 'No one has read this message.' })} + /> + Delivered + item.id} + style={styles.flatList} + ListEmptyComponent={renderEmptyText({ text: 'The message was not delivered to anyone.' })} + /> + + + ); +}; + +const styles = StyleSheet.create({ + container: { + flex: 1, + padding: 24, + justifyContent: 'center', + height: '100%', + }, + title: { + fontSize: 16, + fontWeight: 'bold', + marginVertical: 8, + }, + flatList: { + borderRadius: 16, + }, + userItem: { + flexDirection: 'row', + alignItems: 'center', + padding: 8, + backgroundColor: 'white', + }, + userName: { + fontSize: 16, + fontWeight: 'bold', + marginLeft: 16, + }, + emptyText: { + fontSize: 16, + marginVertical: 16, + textAlign: 'center', + }, +}); diff --git a/examples/SampleApp/src/screens/ChannelScreen.tsx b/examples/SampleApp/src/screens/ChannelScreen.tsx index fbd35467ce..c978ccfe5a 100644 --- a/examples/SampleApp/src/screens/ChannelScreen.tsx +++ b/examples/SampleApp/src/screens/ChannelScreen.tsx @@ -1,4 +1,4 @@ -import React, { useCallback, useEffect, useState } from 'react'; +import React, { useCallback, useEffect, useRef, useState } from 'react'; import type { LocalMessage, Channel as StreamChatChannel } from 'stream-chat'; import { RouteProp, useFocusEffect, useNavigation } from '@react-navigation/native'; import { @@ -33,6 +33,8 @@ import { channelMessageActions } from '../utils/messageActions.tsx'; import { MessageLocation } from '../components/LocationSharing/MessageLocation.tsx'; import { useStreamChatContext } from '../context/StreamChatContext.tsx'; import { CustomAttachmentPickerSelectionBar } from '../components/AttachmentPickerSelectionBar.tsx'; +import BottomSheet from '@gorhom/bottom-sheet'; +import { MessageInfoBottomSheet } from '../components/MessageInfoBottomSheet.tsx'; export type ChannelScreenNavigationProp = NativeStackNavigationProp< StackNavigatorParamList, @@ -115,19 +117,20 @@ const ChannelHeader: React.FC = ({ channel }) => { // Either provide channel or channelId. export const ChannelScreen: React.FC = ({ + navigation, route: { params: { channel: channelFromProp, channelId, messageId }, }, }) => { const { chatClient, messageListImplementation, messageListMode, messageListPruning } = useAppContext(); - const navigation = useNavigation(); const { bottom } = useSafeAreaInsets(); const { theme: { colors }, } = useTheme(); const { t } = useTranslationContext(); const { setThread } = useStreamChatContext(); + const [selectedMessage, setSelectedMessage] = useState(undefined); const [channel, setChannel] = useState(channelFromProp); @@ -170,6 +173,9 @@ export const ChannelScreen: React.FC = ({ const onThreadSelect = useCallback( (thread: LocalMessage | null) => { + if (!thread || !channel) { + return; + } setSelectedThread(thread); setThread(thread); navigation.navigate('ThreadScreen', { @@ -180,6 +186,16 @@ export const ChannelScreen: React.FC = ({ [channel, navigation, setThread], ); + const messageInfoBottomSheetRef = useRef(null); + + const handleMessageInfo = useCallback( + (message: LocalMessage) => { + setSelectedMessage(message); + messageInfoBottomSheetRef.current?.snapToIndex(1); + }, + [messageInfoBottomSheetRef], + ); + const messageActions = useCallback( (params: MessageActionsParams) => { if (!chatClient) { @@ -190,9 +206,10 @@ export const ChannelScreen: React.FC = ({ chatClient, t, colors, + handleMessageInfo, }); }, - [chatClient, colors, t], + [chatClient, colors, t, handleMessageInfo], ); if (!channel || !chatClient) { @@ -232,6 +249,7 @@ export const ChannelScreen: React.FC = ({ )} + ); diff --git a/examples/SampleApp/src/utils/messageActions.tsx b/examples/SampleApp/src/utils/messageActions.tsx index 7dafc4ff79..6398bd12af 100644 --- a/examples/SampleApp/src/utils/messageActions.tsx +++ b/examples/SampleApp/src/utils/messageActions.tsx @@ -1,8 +1,10 @@ +import React from 'react'; import { Alert } from 'react-native'; -import { StreamChat } from 'stream-chat'; +import { LocalMessage, StreamChat } from 'stream-chat'; import { Colors, Delete, + Eye, messageActions, MessageActionsParams, Time, @@ -15,11 +17,13 @@ export function channelMessageActions({ chatClient, colors, t, + handleMessageInfo, }: { params: MessageActionsParams; chatClient: StreamChat; t: TranslationContextValue['t']; colors?: typeof Colors; + handleMessageInfo: (message: LocalMessage) => void; }) { const { dismissOverlay, deleteForMeMessage } = params; const actions = messageActions(params); @@ -111,5 +115,15 @@ export function channelMessageActions({ title: t('Delete for me'), }); + actions.push({ + action: () => { + dismissOverlay(); + handleMessageInfo(params.message); + }, + actionType: 'messageInfo', + icon: , + title: 'Message Info', + }); + return actions; } diff --git a/package/src/components/Message/Message.tsx b/package/src/components/Message/Message.tsx index 699d10cdd5..d1460cb61d 100644 --- a/package/src/components/Message/Message.tsx +++ b/package/src/components/Message/Message.tsx @@ -982,7 +982,7 @@ export const Message = (props: MessageProps) => { const { openThread } = useThreadContext(); const { t } = useTranslationContext(); const readBy = useMessageReadData({ message }); - const deliveredToCount = useMessageDeliveredData({ message }); + const deliveredTo = useMessageDeliveredData({ message }); const { setQuotedMessage, setEditingState } = useMessageComposerAPIContext(); return ( @@ -991,13 +991,13 @@ export const Message = (props: MessageProps) => { {...{ channel, chatContext, - deliveredToCount, + deliveredToCount: deliveredTo.length, dismissKeyboard, enforceUniqueReaction, members, messagesContext, openThread, - readBy, + readBy: readBy.length, setEditingState, setQuotedMessage, t, diff --git a/package/src/components/Message/hooks/useMessageDeliveryData.ts b/package/src/components/Message/hooks/useMessageDeliveryData.ts index daf640ea19..6a4202fe77 100644 --- a/package/src/components/Message/hooks/useMessageDeliveryData.ts +++ b/package/src/components/Message/hooks/useMessageDeliveryData.ts @@ -1,25 +1,29 @@ import { useCallback, useEffect, useState } from 'react'; -import { Event, LocalMessage } from 'stream-chat'; +import { Event, LocalMessage, UserResponse } from 'stream-chat'; import { useChannelContext } from '../../../contexts/channelContext/ChannelContext'; import { useChatContext } from '../../../contexts/chatContext/ChatContext'; -export const useMessageDeliveredData = ({ message }: { message: LocalMessage }) => { +export const useMessageDeliveredData = ({ message }: { message?: LocalMessage }) => { const { channel } = useChannelContext(); const { client } = useChatContext(); const calculate = useCallback(() => { - if (!message.created_at) { - return 0; + if (!message?.created_at) { + return []; } const messageRef = { msgId: message.id, timestampMs: new Date(message.created_at).getTime(), }; - return channel.messageReceiptsTracker.deliveredForMessage(messageRef).length; + return channel.messageReceiptsTracker.deliveredForMessage(messageRef); }, [channel, message]); - const [deliveredToCount, setDeliveredToCount] = useState(calculate()); + const [deliveredToCount, setDeliveredToCount] = useState([]); + + useEffect(() => { + setDeliveredToCount(calculate()); + }, [calculate]); useEffect(() => { const { unsubscribe } = channel.on('message.delivered', (event: Event) => { diff --git a/package/src/components/Message/hooks/useMessageReadData.ts b/package/src/components/Message/hooks/useMessageReadData.ts index 8e0086a232..8f79963692 100644 --- a/package/src/components/Message/hooks/useMessageReadData.ts +++ b/package/src/components/Message/hooks/useMessageReadData.ts @@ -1,26 +1,30 @@ import { useCallback, useEffect, useState } from 'react'; -import { Event, LocalMessage } from 'stream-chat'; +import { Event, LocalMessage, UserResponse } from 'stream-chat'; import { useChannelContext } from '../../../contexts/channelContext/ChannelContext'; import { useChatContext } from '../../../contexts/chatContext/ChatContext'; -export const useMessageReadData = ({ message }: { message: LocalMessage }) => { +export const useMessageReadData = ({ message }: { message?: LocalMessage }) => { const { channel } = useChannelContext(); const { client } = useChatContext(); const calculate = useCallback(() => { - if (!message.created_at) { - return 0; + if (!message?.created_at) { + return []; } const messageRef = { msgId: message.id, timestampMs: new Date(message.created_at).getTime(), }; - return channel.messageReceiptsTracker.readersForMessage(messageRef).length; + return channel.messageReceiptsTracker.readersForMessage(messageRef); }, [channel, message]); - const [readBy, setReadBy] = useState(calculate()); + const [readBy, setReadBy] = useState([]); + + useEffect(() => { + setReadBy(calculate()); + }, [calculate]); useEffect(() => { const { unsubscribe } = channel.on('message.read', (event: Event) => { diff --git a/package/src/components/index.ts b/package/src/components/index.ts index 108f0471c8..407bcd1893 100644 --- a/package/src/components/index.ts +++ b/package/src/components/index.ts @@ -64,6 +64,7 @@ export * from './ChannelPreview/hooks/useChannelPreviewDisplayPresence'; export * from './ChannelPreview/hooks/useLatestMessagePreview'; export * from './ChannelPreview/hooks/useChannelPreviewData'; export * from './ChannelPreview/hooks/useIsChannelMuted'; +export * from './ChannelPreview/hooks/useMessageDeliveryStatus'; export * from './Chat/Chat'; export * from './Chat/hooks/useCreateChatClient'; @@ -93,6 +94,8 @@ export * from './Message/hooks/useCreateMessageContext'; export * from './Message/hooks/useMessageActions'; export * from './Message/hooks/useMessageActionHandlers'; export * from './Message/hooks/useStreamingMessage'; +export * from './Message/hooks/useMessageDeliveryData'; +export * from './Message/hooks/useMessageReadData'; export * from './Message/Message'; export * from './Message/MessageSimple/MessageAvatar'; export * from './Message/MessageSimple/MessageBounce'; From 5e84ba99f685f0a23f8d17322cb54838dab95e5b Mon Sep 17 00:00:00 2001 From: Khushal Agarwal Date: Wed, 19 Nov 2025 17:34:26 +0530 Subject: [PATCH 3/6] fix: change var name in the useMessageDeliveryData hook --- .../components/Message/hooks/useMessageDeliveryData.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/package/src/components/Message/hooks/useMessageDeliveryData.ts b/package/src/components/Message/hooks/useMessageDeliveryData.ts index 6a4202fe77..14eff654f2 100644 --- a/package/src/components/Message/hooks/useMessageDeliveryData.ts +++ b/package/src/components/Message/hooks/useMessageDeliveryData.ts @@ -19,10 +19,10 @@ export const useMessageDeliveredData = ({ message }: { message?: LocalMessage }) return channel.messageReceiptsTracker.deliveredForMessage(messageRef); }, [channel, message]); - const [deliveredToCount, setDeliveredToCount] = useState([]); + const [deliveredTo, setDeliveredTo] = useState([]); useEffect(() => { - setDeliveredToCount(calculate()); + setDeliveredTo(calculate()); }, [calculate]); useEffect(() => { @@ -31,11 +31,11 @@ export const useMessageDeliveredData = ({ message }: { message?: LocalMessage }) * An optimization to only re-calculate if the event is received by a different user. */ if (event.user?.id !== client.user?.id) { - setDeliveredToCount(calculate()); + setDeliveredTo(calculate()); } }); return unsubscribe; }, [channel, calculate, client.user?.id]); - return deliveredToCount; + return deliveredTo; }; From d25763836962ce903044358ab314dc7d095902e3 Mon Sep 17 00:00:00 2001 From: Khushal Agarwal Date: Thu, 20 Nov 2025 17:47:05 +0530 Subject: [PATCH 4/6] fix: update stream-chat version to 9.26.0 (#3292) --- package/package.json | 2 +- package/yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package/package.json b/package/package.json index a892d446d7..274e3c5412 100644 --- a/package/package.json +++ b/package/package.json @@ -79,7 +79,7 @@ "path": "0.12.7", "react-native-markdown-package": "1.8.2", "react-native-url-polyfill": "^2.0.0", - "stream-chat": "^9.23.0", + "stream-chat": "^9.26.0", "use-sync-external-store": "^1.5.0" }, "peerDependencies": { diff --git a/package/yarn.lock b/package/yarn.lock index 0e0cfcab86..01e8fc56d7 100644 --- a/package/yarn.lock +++ b/package/yarn.lock @@ -8347,10 +8347,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.23.0: - version "9.23.0" - resolved "https://registry.yarnpkg.com/stream-chat/-/stream-chat-9.23.0.tgz#e7e5cf729861597e7198907c1cab22a57d68a2fc" - integrity sha512-UW112HYsLnYb4RMIXBtAouNQCCe0weVzNivjezsw+JKK1b/TX0JLBi+wK25mBUEO+coOGKfXiye6IB3gao8ipw== +stream-chat@^9.26.0: + version "9.26.0" + resolved "https://registry.yarnpkg.com/stream-chat/-/stream-chat-9.26.0.tgz#92cd0dd5c59bfed05fb4fd74e9a19e8cce726175" + integrity sha512-hTeKWDyWjiM3R7GcvgqNCO6zTPZ1oyJbwbpJR2MyEReDVYSKeZge009m/queMxUGJHNuyiRKY0sjQocw4ceWUQ== dependencies: "@types/jsonwebtoken" "^9.0.8" "@types/ws" "^8.5.14" From e216f85b8a0c6ce6deefa1a2049b1917b92023e8 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 20 Nov 2025 17:56:59 +0530 Subject: [PATCH 5/6] chore(deps-dev): bump @react-native-community/cli from 19.1.1 to 19.1.2 in /examples/TypeScriptMessaging (#3290) Bumps [@react-native-community/cli](https://github.com/react-native-community/cli/tree/HEAD/packages/cli) from 19.1.1 to 19.1.2.
Commits

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=@react-native-community/cli&package-manager=npm_and_yarn&previous-version=19.1.1&new-version=19.1.2)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) You can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/GetStream/stream-chat-react-native/network/alerts).
Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- examples/TypeScriptMessaging/package.json | 2 +- examples/TypeScriptMessaging/yarn.lock | 175 ++++++++++++++++------ 2 files changed, 127 insertions(+), 50 deletions(-) diff --git a/examples/TypeScriptMessaging/package.json b/examples/TypeScriptMessaging/package.json index 6194eaa056..3f9e55baae 100644 --- a/examples/TypeScriptMessaging/package.json +++ b/examples/TypeScriptMessaging/package.json @@ -38,7 +38,7 @@ "devDependencies": { "@babel/core": "^7.27.4", "@babel/runtime": "^7.27.6", - "@react-native-community/cli": "19.1.1", + "@react-native-community/cli": "19.1.2", "@react-native-community/cli-platform-android": "19.1.1", "@react-native-community/cli-platform-ios": "19.1.1", "@react-native/babel-preset": "0.80.2", diff --git a/examples/TypeScriptMessaging/yarn.lock b/examples/TypeScriptMessaging/yarn.lock index 5ae0cf23fe..403761eb4d 100644 --- a/examples/TypeScriptMessaging/yarn.lock +++ b/examples/TypeScriptMessaging/yarn.lock @@ -1482,12 +1482,12 @@ resolved "https://registry.yarnpkg.com/@react-native-clipboard/clipboard/-/clipboard-1.16.2.tgz#d8517eea937d336b8fe1ca44e955e691d27f5ba4" integrity sha512-VqUYwVxo7DyHMz7v2LxLMaAOSu3pKFvzpqR4jQezdH0VyaudILTTcUf7dR4TroARU/lLkTU8nZA11UniTvGVXg== -"@react-native-community/cli-clean@19.1.1": - version "19.1.1" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-clean/-/cli-clean-19.1.1.tgz#574ada0956ac506431a84e45b5fa36f22b9a510d" - integrity sha512-pP7SmK+PNw5B1Aa2c6y06FBNc9iGah/leFFM2uewpyZRJQ4zycX6Zz1UANpq9YZfp65n7NZKV9Gct2uaVRuP/Q== +"@react-native-community/cli-clean@19.1.2": + version "19.1.2" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-clean/-/cli-clean-19.1.2.tgz#10be56a6ab966c141090176e54937cb7b7618a9b" + integrity sha512-LI/bTLtosbDyHtIs+HxlmHp+5Nbjz+IIEEqrBO2tUeA+ENX01YEnIgGIv4z7giNWkHSiqywjdOyYNqg27ydy2g== dependencies: - "@react-native-community/cli-tools" "19.1.1" + "@react-native-community/cli-tools" "19.1.2" chalk "^4.1.2" execa "^5.0.0" fast-glob "^3.3.2" @@ -1502,6 +1502,16 @@ fast-glob "^3.3.2" fast-xml-parser "^4.4.1" +"@react-native-community/cli-config-android@19.1.2": + version "19.1.2" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-config-android/-/cli-config-android-19.1.2.tgz#f8a03a0a49cd89a4e6bffed46396b3a2ea7690df" + integrity sha512-IIhzhDUmT53RT45Qrxc/OfvkTD4U7IrfkfoIdKmBT6O0X0QaoegK4OE6aAuc86D2GXlD5rbVcPMSuN4TY8Hmlw== + dependencies: + "@react-native-community/cli-tools" "19.1.2" + chalk "^4.1.2" + fast-glob "^3.3.2" + fast-xml-parser "^4.4.1" + "@react-native-community/cli-config-apple@19.1.1": version "19.1.1" resolved "https://registry.yarnpkg.com/@react-native-community/cli-config-apple/-/cli-config-apple-19.1.1.tgz#f805588235f1504546ab26dfeb708e20d4e144b0" @@ -1512,28 +1522,38 @@ execa "^5.0.0" fast-glob "^3.3.2" -"@react-native-community/cli-config@19.1.1": - version "19.1.1" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-config/-/cli-config-19.1.1.tgz#566fab3438a8d90ec8976927b7030f3a1f1d3d8a" - integrity sha512-qGLYCFf3whCa/we3iKd5BY4RlcAUhSykwGpnJpjseXLaI5iJzIn/IMd70EBG8QvhV/KQxM7VFMQj6KgGcoNKYg== +"@react-native-community/cli-config-apple@19.1.2": + version "19.1.2" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-config-apple/-/cli-config-apple-19.1.2.tgz#d251fc18043f2e202d681a8ac911b8b1688409f4" + integrity sha512-91upuYMLgEtJE6foWQFgGDpT3ZDTc5bX6rMY5cJMqiAE5svgh1q0kbbpRuv/ptBYzcxLplL7wZWpA77TlJdm9A== dependencies: - "@react-native-community/cli-tools" "19.1.1" + "@react-native-community/cli-tools" "19.1.2" + chalk "^4.1.2" + execa "^5.0.0" + fast-glob "^3.3.2" + +"@react-native-community/cli-config@19.1.2": + version "19.1.2" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-config/-/cli-config-19.1.2.tgz#d6432c3100d2a7cb1e92d47b39bf3688fd712970" + integrity sha512-o0cc6R6r9nY9MiLFeLIN797fBLWwKW9cee/NCm6nBBzPk/paro6HEbcXE02xnVzMb+nhQPrbPOzp3qE7WhtwRA== + dependencies: + "@react-native-community/cli-tools" "19.1.2" chalk "^4.1.2" cosmiconfig "^9.0.0" deepmerge "^4.3.0" fast-glob "^3.3.2" joi "^17.2.1" -"@react-native-community/cli-doctor@19.1.1": - version "19.1.1" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-doctor/-/cli-doctor-19.1.1.tgz#e09749815f0baea17e4fc04b9897051829149f42" - integrity sha512-P6JgTpa8fn6SfGiotyRhiCqBlRlKx8MUUdMESPGyPzvMb8omz+Jv0ibdNg9CVT11/0x5oRsoGv07os/o+Eg0zQ== +"@react-native-community/cli-doctor@19.1.2": + version "19.1.2" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-doctor/-/cli-doctor-19.1.2.tgz#b318d000a12d029d65f829aba5e6f14f5c6132b8" + integrity sha512-uUV/1QrWA1Cx7dqkTCcarqfya/7gBmKXd9BzVCEl6bzAn1jd1Q5UaZ+DmZgAoLVKlbAjpPTJTfqjD44aqUdjyA== dependencies: - "@react-native-community/cli-config" "19.1.1" - "@react-native-community/cli-platform-android" "19.1.1" - "@react-native-community/cli-platform-apple" "19.1.1" - "@react-native-community/cli-platform-ios" "19.1.1" - "@react-native-community/cli-tools" "19.1.1" + "@react-native-community/cli-config" "19.1.2" + "@react-native-community/cli-platform-android" "19.1.2" + "@react-native-community/cli-platform-apple" "19.1.2" + "@react-native-community/cli-platform-ios" "19.1.2" + "@react-native-community/cli-tools" "19.1.2" chalk "^4.1.2" command-exists "^1.2.8" deepmerge "^4.3.0" @@ -1556,6 +1576,17 @@ execa "^5.0.0" logkitty "^0.7.1" +"@react-native-community/cli-platform-android@19.1.2": + version "19.1.2" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-platform-android/-/cli-platform-android-19.1.2.tgz#72d3dd69730a18373c4185f1f17e65c49fbc2b39" + integrity sha512-eMryTlSSTl3JK/tZTaMaMgHec9qu+eQj+3A15qmBdj2ac3p/hiauwAe4q35rz5XABw1cJCuyn+s469YsdTllaw== + dependencies: + "@react-native-community/cli-config-android" "19.1.2" + "@react-native-community/cli-tools" "19.1.2" + chalk "^4.1.2" + execa "^5.0.0" + logkitty "^0.7.1" + "@react-native-community/cli-platform-apple@19.1.1": version "19.1.1" resolved "https://registry.yarnpkg.com/@react-native-community/cli-platform-apple/-/cli-platform-apple-19.1.1.tgz#931c85425e53ea67627adcace06a6bbc676f0448" @@ -1567,6 +1598,17 @@ execa "^5.0.0" fast-xml-parser "^4.4.1" +"@react-native-community/cli-platform-apple@19.1.2": + version "19.1.2" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-platform-apple/-/cli-platform-apple-19.1.2.tgz#42f8eb69e870f132ffa1383930c53c93b4949783" + integrity sha512-TtaF8Pyrs4dnIH3LTvuPnPjGDsSVaZLu+8s4y5bngzZIf9r7M/HJTlpnhm8+bQPsahxNhNQZBGUBrQJqfmg7Ww== + dependencies: + "@react-native-community/cli-config-apple" "19.1.2" + "@react-native-community/cli-tools" "19.1.2" + chalk "^4.1.2" + execa "^5.0.0" + fast-xml-parser "^4.4.1" + "@react-native-community/cli-platform-ios@19.1.1": version "19.1.1" resolved "https://registry.yarnpkg.com/@react-native-community/cli-platform-ios/-/cli-platform-ios-19.1.1.tgz#c3e8eb512530469fc6d48881f5265af3f0c2c63f" @@ -1574,12 +1616,19 @@ dependencies: "@react-native-community/cli-platform-apple" "19.1.1" -"@react-native-community/cli-server-api@19.1.1": - version "19.1.1" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-server-api/-/cli-server-api-19.1.1.tgz#24f4a7b4c4a527e850ed6bb3fc959a9fd0fa4f4c" - integrity sha512-p0FFm82uPrtLZBWTD3bZ43mMBIV5mXwvGFYMcsfGiuMoS9SNbw4ImEFTG2IutVpr7Qb6NMjx6SbgYYMnTdZXmw== +"@react-native-community/cli-platform-ios@19.1.2": + version "19.1.2" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-platform-ios/-/cli-platform-ios-19.1.2.tgz#2925279acbfa22dc6e05f189f8908cb0c6427f6e" + integrity sha512-rmLZjwpI+mV3bbd6FgR6yM/ekFNr4QM/Dgzmatkh8k94B5uGtw5Me4EKlY+MrqR3lIyjzqWtLoefcJxA1c9d2w== dependencies: - "@react-native-community/cli-tools" "19.1.1" + "@react-native-community/cli-platform-apple" "19.1.2" + +"@react-native-community/cli-server-api@19.1.2": + version "19.1.2" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-server-api/-/cli-server-api-19.1.2.tgz#adc5353314d40c50d1bfddbc1b85a29e3650ce03" + integrity sha512-K6UIvtw6VtcKxCX+rJ5mKQYiqcSSRKODPQ2nbIeIxjjO5nDjDriGkFC/ypHHk38oZuJYOLbOySqnnCNkdEI4uQ== + dependencies: + "@react-native-community/cli-tools" "19.1.2" body-parser "^1.20.3" compression "^1.7.1" connect "^3.6.5" @@ -1606,24 +1655,40 @@ prompts "^2.4.2" semver "^7.5.2" -"@react-native-community/cli-types@19.1.1": - version "19.1.1" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-types/-/cli-types-19.1.1.tgz#b48aa60d9dbc16f3bc4ccd5405504d80efce0835" - integrity sha512-rOGiYjeDM9tkYBEuK6TJrnxpMhmaId1Un8pjQJswz7W9w2Vb6+nnLfWja7X7VmDIvqIK5GhVobRHsmKCKIdDEA== +"@react-native-community/cli-tools@19.1.2": + version "19.1.2" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-tools/-/cli-tools-19.1.2.tgz#970e952d373432b2a9cc109ba3f99f8c7d812700" + integrity sha512-AsDuZu/7R/QX+vGpJIRK97v24X+zqkmwA9/uLRguLTHM175nUxb/byXmAKWuZylG2FAikVvf7EqV8MFGbwM7Wg== dependencies: - joi "^17.2.1" + "@vscode/sudo-prompt" "^9.0.0" + appdirsjs "^1.2.4" + chalk "^4.1.2" + execa "^5.0.0" + find-up "^5.0.0" + launch-editor "^2.9.1" + mime "^2.4.1" + ora "^5.4.1" + prompts "^2.4.2" + semver "^7.5.2" -"@react-native-community/cli@19.1.1": - version "19.1.1" - resolved "https://registry.yarnpkg.com/@react-native-community/cli/-/cli-19.1.1.tgz#d1bd8c477b0c878682b34b9bfc45bb62ab40db7c" - integrity sha512-H17sV83KPg2H2GCNuUSMM1ZM2sy6msVSmxrhJSycH8ua3i9Iixja8DeYtGIcJUzjdU/4U2eSDs6PjOSZUVn8CQ== +"@react-native-community/cli-types@19.1.2": + version "19.1.2" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-types/-/cli-types-19.1.2.tgz#a59911cac2fb2043c70b093e0e61ebc0ac105619" + integrity sha512-Ze6fi6jE+JPvMlISWbZ/eCPOkRuuEs1SX4rJGWOXPcDzEVF6gs1ePsAjdzQ3RJYRMqQ49vo6iGiOZs//z5kuVw== dependencies: - "@react-native-community/cli-clean" "19.1.1" - "@react-native-community/cli-config" "19.1.1" - "@react-native-community/cli-doctor" "19.1.1" - "@react-native-community/cli-server-api" "19.1.1" - "@react-native-community/cli-tools" "19.1.1" - "@react-native-community/cli-types" "19.1.1" + joi "^17.2.1" + +"@react-native-community/cli@19.1.2": + version "19.1.2" + resolved "https://registry.yarnpkg.com/@react-native-community/cli/-/cli-19.1.2.tgz#f83bbecb2c1217a07270afdd9173d74453b3ec49" + integrity sha512-b28TLqODMgQRx6f4gbHoHYpnKyFbWzJkIk3+Ggpad/at493KfGQ+WvKg1sts/st8mxzmbk0T6lCc/9A3QoFKkQ== + dependencies: + "@react-native-community/cli-clean" "19.1.2" + "@react-native-community/cli-config" "19.1.2" + "@react-native-community/cli-doctor" "19.1.2" + "@react-native-community/cli-server-api" "19.1.2" + "@react-native-community/cli-tools" "19.1.2" + "@react-native-community/cli-types" "19.1.2" chalk "^4.1.2" commander "^9.4.1" deepmerge "^4.3.0" @@ -7040,7 +7105,7 @@ scheduler@0.26.0, scheduler@^0.26.0: resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.26.0.tgz#4ce8a8c2a2095f13ea11bf9a445be50c555d6337" integrity sha512-NlHwttCI/l5gCPR3D1nNXtWABUmBwvZpEQiD4IXSbIDq8BzLIK/7Ir5gTFSGZDUu37K5cMNp0hFtzO38sC7gWA== -semver@7.7.2, semver@^7.7.2: +semver@7.7.2, semver@^7.1.3, semver@^7.3.7, semver@^7.5.2, semver@^7.5.3, semver@^7.5.4, semver@^7.6.0, semver@^7.7.2: version "7.7.2" resolved "https://registry.yarnpkg.com/semver/-/semver-7.7.2.tgz#67d99fdcd35cec21e6f8b87a7fd515a33f982b58" integrity sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA== @@ -7050,11 +7115,6 @@ semver@^6.3.0, semver@^6.3.1: resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== -semver@^7.1.3, semver@^7.3.7, semver@^7.5.2, semver@^7.5.3, semver@^7.5.4, semver@^7.6.0: - version "7.7.1" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.7.1.tgz#abd5098d82b18c6c81f6074ff2647fd3e7220c9f" - integrity sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA== - send@0.19.0: version "0.19.0" resolved "https://registry.yarnpkg.com/send/-/send-0.19.0.tgz#bbc5a388c8ea6c048967049dbeac0e4a3f09d7f8" @@ -7321,12 +7381,29 @@ stream-chat-react-native-core@8.1.0: use-sync-external-store "^1.5.0" "stream-chat-react-native-core@link:../../package": - version "0.0.0" - uid "" + version "8.1.0" + dependencies: + "@gorhom/bottom-sheet" "^5.1.8" + "@ungap/structured-clone" "^1.3.0" + dayjs "1.11.13" + emoji-regex "^10.4.0" + i18next "^25.2.1" + intl-pluralrules "^2.0.1" + linkifyjs "^4.3.1" + lodash-es "4.17.21" + mime-types "^2.1.35" + path "0.12.7" + react-native-markdown-package "1.8.2" + react-native-url-polyfill "^2.0.0" + stream-chat "^9.23.0" + use-sync-external-store "^1.5.0" "stream-chat-react-native@link:../../package/native-package": - version "0.0.0" - uid "" + version "8.1.0" + dependencies: + es6-symbol "^3.1.3" + mime "^4.0.7" + stream-chat-react-native-core "8.1.0" stream-chat@^9.23.0: version "9.24.0" From 53739b80414cc28b68b172560906888f3d9ab4c0 Mon Sep 17 00:00:00 2001 From: Ivan Sekovanikj <31964049+isekovanic@users.noreply.github.com> Date: Fri, 21 Nov 2025 14:07:31 +0100 Subject: [PATCH 6/6] perf: prevent unmounting `MessageBubble` when STR happens (#3281) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## ๐ŸŽฏ Goal This PR provides a performance improvement for the swipe-to-reply functionality, where we keep: - Keeps scrolling performance the same (animated views do not pollute the virtual DOM) - Renders only one `Animated.View` (conditionally) - Animates through pushing out the rest of the content rather than displaying old content ## ๐Ÿ›  Implementation details ## ๐ŸŽจ UI Changes
iOS
Before After
Android
Before After
## ๐Ÿงช 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 --- .../Message/MessageSimple/MessageBubble.tsx | 79 +++++++++---------- .../__snapshots__/Thread.test.js.snap | 4 + 2 files changed, 42 insertions(+), 41 deletions(-) diff --git a/package/src/components/Message/MessageSimple/MessageBubble.tsx b/package/src/components/Message/MessageSimple/MessageBubble.tsx index 773cfd8183..d53cee18bb 100644 --- a/package/src/components/Message/MessageSimple/MessageBubble.tsx +++ b/package/src/components/Message/MessageSimple/MessageBubble.tsx @@ -1,9 +1,8 @@ -import React, { useMemo, useState } from 'react'; +import React, { SetStateAction, useMemo, useState } from 'react'; import { StyleSheet, View } from 'react-native'; import { Gesture, GestureDetector } from 'react-native-gesture-handler'; import Animated, { - Extrapolation, interpolate, runOnJS, useAnimatedStyle, @@ -17,6 +16,7 @@ import { ReactionListTopProps } from './ReactionList/ReactionListTop'; import { MessagesContextValue, useTheme } from '../../../contexts'; +import { useStableCallback } from '../../../hooks'; import { NativeHandlers } from '../../../native'; export type MessageBubbleProps = Pick< @@ -105,6 +105,14 @@ export const SwipableMessageBubble = React.memo( const triggerHaptic = NativeHandlers.triggerHaptic; + const setMessageContentWidth = useStableCallback((valueOrCallback: SetStateAction) => { + if (typeof valueOrCallback === 'number') { + props.setMessageContentWidth(Math.ceil(valueOrCallback)); + return; + } + props.setMessageContentWidth(valueOrCallback); + }); + const swipeGesture = useMemo( () => Gesture.Pan() @@ -167,61 +175,48 @@ export const SwipableMessageBubble = React.memo( ); }), [ - isSwiping, messageSwipeToReplyHitSlop, - onSwipe, touchStart, + isSwiping, + shouldRenderSwipeableWrapper, translateX, + onSwipe, triggerHaptic, - shouldRenderSwipeableWrapper, ], ); - const messageBubbleAnimatedStyle = useAnimatedStyle( - () => ({ - transform: [{ translateX: translateX.value }], - }), - [], - ); - const swipeContentAnimatedStyle = useAnimatedStyle( () => ({ opacity: interpolate(translateX.value, [0, SWIPABLE_THRESHOLD], [0, 1]), - transform: [ - { - translateX: interpolate( - translateX.value, - [0, SWIPABLE_THRESHOLD], - [-SWIPABLE_THRESHOLD, 0], - Extrapolation.CLAMP, - ), - }, - ], + width: translateX.value, }), [], ); return ( - + 0 && shouldRenderAnimatedWrapper + ? { width: props.messageContentWidth } + : {}, + ]} + > {shouldRenderAnimatedWrapper ? ( - <> - - {MessageSwipeContent ? : null} - - - - - - ) : ( - - )} + + {MessageSwipeContent ? : null} + + ) : null} + ); @@ -234,6 +229,8 @@ const styles = StyleSheet.create({ flexDirection: 'row', }, swipeContentContainer: { - position: 'absolute', + flexShrink: 0, + overflow: 'hidden', + position: 'relative', }, }); diff --git a/package/src/components/Thread/__tests__/__snapshots__/Thread.test.js.snap b/package/src/components/Thread/__tests__/__snapshots__/Thread.test.js.snap index 436bb023d3..af67127f37 100644 --- a/package/src/components/Thread/__tests__/__snapshots__/Thread.test.js.snap +++ b/package/src/components/Thread/__tests__/__snapshots__/Thread.test.js.snap @@ -380,6 +380,7 @@ exports[`Thread should match thread snapshot 1`] = ` "flexDirection": "row", }, {}, + {}, ] } > @@ -749,6 +750,7 @@ exports[`Thread should match thread snapshot 1`] = ` "flexDirection": "row", }, {}, + {}, ] } > @@ -1156,6 +1158,7 @@ exports[`Thread should match thread snapshot 1`] = ` "flexDirection": "row", }, {}, + {}, ] } > @@ -1529,6 +1532,7 @@ exports[`Thread should match thread snapshot 1`] = ` "flexDirection": "row", }, {}, + {}, ] } >