diff --git a/apps/fabric-example/ios/Podfile.lock b/apps/fabric-example/ios/Podfile.lock index 1611a76a84c7..1a8d02adb49e 100644 --- a/apps/fabric-example/ios/Podfile.lock +++ b/apps/fabric-example/ios/Podfile.lock @@ -1747,7 +1747,7 @@ PODS: - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - Yoga - - RNReanimated (3.16.3): + - RNReanimated (3.16.4): - DoubleConversion - glog - hermes-engine @@ -1767,10 +1767,10 @@ PODS: - ReactCodegen - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - - RNReanimated/reanimated (= 3.16.3) - - RNReanimated/worklets (= 3.16.3) + - RNReanimated/reanimated (= 3.16.4) + - RNReanimated/worklets (= 3.16.4) - Yoga - - RNReanimated/reanimated (3.16.3): + - RNReanimated/reanimated (3.16.4): - DoubleConversion - glog - hermes-engine @@ -1790,9 +1790,9 @@ PODS: - ReactCodegen - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - - RNReanimated/reanimated/apple (= 3.16.3) + - RNReanimated/reanimated/apple (= 3.16.4) - Yoga - - RNReanimated/reanimated/apple (3.16.3): + - RNReanimated/reanimated/apple (3.16.4): - DoubleConversion - glog - hermes-engine @@ -1813,7 +1813,7 @@ PODS: - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - Yoga - - RNReanimated/worklets (3.16.3): + - RNReanimated/worklets (3.16.4): - DoubleConversion - glog - hermes-engine @@ -2229,11 +2229,11 @@ SPEC CHECKSUMS: RNCPicker: d051e0647af8b2ad01a3d39a6b5dd9b7c0ccc166 RNFlashList: 6f169ad83e52579b7754cbbcec1b004c27d82c93 RNGestureHandler: c374c750a0a9bacd95f5c740d146ab9428549d6b - RNReanimated: 2b563f5b9d25c20fade5c428f1ae3dc034961deb + RNReanimated: b6a4bd4c15d97f9fe83034de369dcf7491fd0bde RNScreens: de6e57426ba0e6cbc3fb5b4f496e7f08cb2773c2 RNSVG: 08750404f92a36162a92522cc77dee437be1d257 SocketRocket: d4aabe649be1e368d1318fdf28a022d714d65748 - Yoga: 2a74e67570a7902969ff44f35dd41f47a9693be8 + Yoga: 8833bd4378ffd79f1dea711d6dc7231c09e63590 PODFILE CHECKSUM: 3eb88d49c8fe32af0ac2c85501e29d29171f1070 diff --git a/apps/macos-example/macos/Podfile.lock b/apps/macos-example/macos/Podfile.lock index 62d861f51adf..1bd10965e8bb 100644 --- a/apps/macos-example/macos/Podfile.lock +++ b/apps/macos-example/macos/Podfile.lock @@ -1023,25 +1023,25 @@ PODS: - glog - RCT-Folly (= 2022.05.16.00) - React-Core - - RNReanimated (3.16.3): + - RNReanimated (3.16.4): - glog - RCT-Folly (= 2022.05.16.00) - React-Core - ReactCommon/turbomodule/core - - RNReanimated/reanimated (= 3.16.3) - - RNReanimated/worklets (= 3.16.3) - - RNReanimated/reanimated (3.16.3): + - RNReanimated/reanimated (= 3.16.4) + - RNReanimated/worklets (= 3.16.4) + - RNReanimated/reanimated (3.16.4): - glog - RCT-Folly (= 2022.05.16.00) - React-Core - ReactCommon/turbomodule/core - - RNReanimated/reanimated/apple (= 3.16.3) - - RNReanimated/reanimated/apple (3.16.3): + - RNReanimated/reanimated/apple (= 3.16.4) + - RNReanimated/reanimated/apple (3.16.4): - glog - RCT-Folly (= 2022.05.16.00) - React-Core - ReactCommon/turbomodule/core - - RNReanimated/worklets (3.16.3): + - RNReanimated/worklets (3.16.4): - glog - RCT-Folly (= 2022.05.16.00) - React-Core @@ -1270,10 +1270,10 @@ SPEC CHECKSUMS: RNCAsyncStorage: ec53e44dc3e75b44aa2a9f37618a49c3bc080a7a RNCPicker: 0173dedc74776227ec6dcc61bb85cd9f07bbb2ac RNGestureHandler: bb81850add626ddd265294323310fec6e861c96b - RNReanimated: 565a7564444cb7d3d81c882c3283e5d122ed57c4 + RNReanimated: 372250f6264fdb16d23e4d3b0ce2aebe39152e35 RNSVG: 01eb8d8a0e2289ec3ecc9626ce920e00d2174992 SocketRocket: f6c6249082c011e6de2de60ed641ef8bbe0cfac9 - Yoga: 0639c9c8a20ae8043b0b64e2ef6d7a2cd5806aac + Yoga: 329461de6a23b9e0c108d197fd0f6e87c8c8ecf2 PODFILE CHECKSUM: ddae34ca2842288eb8f70e6df3c2d638c2f56027 diff --git a/apps/paper-example/ios/Podfile.lock b/apps/paper-example/ios/Podfile.lock index 6690afc19ee3..2befdc5176f1 100644 --- a/apps/paper-example/ios/Podfile.lock +++ b/apps/paper-example/ios/Podfile.lock @@ -1601,7 +1601,7 @@ PODS: - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - Yoga - - RNReanimated (3.16.3): + - RNReanimated (3.16.4): - DoubleConversion - glog - hermes-engine @@ -1621,10 +1621,10 @@ PODS: - ReactCodegen - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - - RNReanimated/reanimated (= 3.16.3) - - RNReanimated/worklets (= 3.16.3) + - RNReanimated/reanimated (= 3.16.4) + - RNReanimated/worklets (= 3.16.4) - Yoga - - RNReanimated/reanimated (3.16.3): + - RNReanimated/reanimated (3.16.4): - DoubleConversion - glog - hermes-engine @@ -1644,9 +1644,9 @@ PODS: - ReactCodegen - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - - RNReanimated/reanimated/apple (= 3.16.3) + - RNReanimated/reanimated/apple (= 3.16.4) - Yoga - - RNReanimated/reanimated/apple (3.16.3): + - RNReanimated/reanimated/apple (3.16.4): - DoubleConversion - glog - hermes-engine @@ -1667,7 +1667,7 @@ PODS: - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - Yoga - - RNReanimated/worklets (3.16.3): + - RNReanimated/worklets (3.16.4): - DoubleConversion - glog - hermes-engine @@ -2019,11 +2019,11 @@ SPEC CHECKSUMS: RNCPicker: 0173dedc74776227ec6dcc61bb85cd9f07bbb2ac RNFlashList: 115dd44377580761bff386a0caebf165424cf16f RNGestureHandler: 6dfe7692a191ee224748964127114edf057a1475 - RNReanimated: addf9d1ab2a73fabff3bc443c952442e11c4dc8e + RNReanimated: d0dd0abbaf6588d52772b2ddafe045744cbbfbe2 RNScreens: 19719a9c326e925498ac3b2d35c4e50fe87afc06 RNSVG: 01eb8d8a0e2289ec3ecc9626ce920e00d2174992 SocketRocket: d4aabe649be1e368d1318fdf28a022d714d65748 - Yoga: 2a74e67570a7902969ff44f35dd41f47a9693be8 + Yoga: 8833bd4378ffd79f1dea711d6dc7231c09e63590 PODFILE CHECKSUM: 44956aee8c836a85949aa1fa8dde2c10e661633e diff --git a/apps/tvos-example/ios/Podfile.lock b/apps/tvos-example/ios/Podfile.lock index 1bcf0f418a11..8f95287d3dfa 100644 --- a/apps/tvos-example/ios/Podfile.lock +++ b/apps/tvos-example/ios/Podfile.lock @@ -1031,25 +1031,25 @@ PODS: - React-jsi (= 0.73.4-0) - React-logger (= 0.73.4-0) - React-perflogger (= 0.73.4-0) - - RNReanimated (3.16.3): + - RNReanimated (3.16.4): - glog - RCT-Folly (= 2022.05.16.00) - React-Core - ReactCommon/turbomodule/core - - RNReanimated/reanimated (= 3.16.3) - - RNReanimated/worklets (= 3.16.3) - - RNReanimated/reanimated (3.16.3): + - RNReanimated/reanimated (= 3.16.4) + - RNReanimated/worklets (= 3.16.4) + - RNReanimated/reanimated (3.16.4): - glog - RCT-Folly (= 2022.05.16.00) - React-Core - ReactCommon/turbomodule/core - - RNReanimated/reanimated/apple (= 3.16.3) - - RNReanimated/reanimated/apple (3.16.3): + - RNReanimated/reanimated/apple (= 3.16.4) + - RNReanimated/reanimated/apple (3.16.4): - glog - RCT-Folly (= 2022.05.16.00) - React-Core - ReactCommon/turbomodule/core - - RNReanimated/worklets (3.16.3): + - RNReanimated/worklets (3.16.4): - glog - RCT-Folly (= 2022.05.16.00) - React-Core @@ -1267,9 +1267,9 @@ SPEC CHECKSUMS: React-runtimescheduler: 20b2202e3396589a71069d12ae9f328949c7c7b8 React-utils: 0307d396f233e47a167b5aaf045b0e4e1dc19d74 ReactCommon: 17891ca337bfa5a7263649b09f27a8c664537bf2 - RNReanimated: d84d3e85f9bbc861c23c14b702447f5adcab5905 + RNReanimated: cfd0d2000a1fbe15236382a499efa6d0d4648352 SocketRocket: f32cd54efbe0f095c4d7594881e52619cfe80b17 - Yoga: ab50eb8f7fcf1b36aad1801b5687b66b2c0aa000 + Yoga: e7f2a2256464d4ef7b3825d216bd22aac3b449c1 PODFILE CHECKSUM: c2efe42da2b9ce73832f8f03df86727f3f712fff diff --git a/packages/react-native-reanimated/Common/cpp/reanimated/NativeModules/NativeReanimatedModule.cpp b/packages/react-native-reanimated/Common/cpp/reanimated/NativeModules/NativeReanimatedModule.cpp index 832fb06df14c..673ebd1e7ccd 100644 --- a/packages/react-native-reanimated/Common/cpp/reanimated/NativeModules/NativeReanimatedModule.cpp +++ b/packages/react-native-reanimated/Common/cpp/reanimated/NativeModules/NativeReanimatedModule.cpp @@ -205,6 +205,9 @@ NativeReanimatedModule::~NativeReanimatedModule() { // runtime, so they have to go away before we tear down the runtime eventHandlerRegistry_.reset(); frameCallbacks_.clear(); +#ifdef RCT_NEW_ARCH_ENABLED + operationsInBatch_.clear(); +#endif // RCT_NEW_ARCH_ENABLED uiWorkletRuntime_.reset(); } diff --git a/packages/react-native-reanimated/Common/cpp/worklets/SharedItems/Shareables.cpp b/packages/react-native-reanimated/Common/cpp/worklets/SharedItems/Shareables.cpp index 4087065938d4..86e2f68c5e05 100644 --- a/packages/react-native-reanimated/Common/cpp/worklets/SharedItems/Shareables.cpp +++ b/packages/react-native-reanimated/Common/cpp/worklets/SharedItems/Shareables.cpp @@ -302,7 +302,12 @@ jsi::Value ShareableHandle::toJSValue(jsi::Runtime &rt) { remoteRuntime_ = &rt; } } - return jsi::Value(rt, *remoteValue_); + if (&rt == remoteRuntime_) { + return jsi::Value(rt, *remoteValue_); + } + auto initObj = initializer_->toJSValue(rt); + return getValueUnpacker(rt).call( + rt, initObj, jsi::String::createFromAscii(rt, "Handle")); } jsi::Value ShareableString::toJSValue(jsi::Runtime &rt) { diff --git a/packages/react-native-reanimated/apple/reanimated/apple/Fabric/REAInitializerRCTFabricSurface.h b/packages/react-native-reanimated/apple/reanimated/apple/Fabric/REAInitializerRCTFabricSurface.h index bd8143b8a554..c27c21067902 100644 --- a/packages/react-native-reanimated/apple/reanimated/apple/Fabric/REAInitializerRCTFabricSurface.h +++ b/packages/react-native-reanimated/apple/reanimated/apple/Fabric/REAInitializerRCTFabricSurface.h @@ -5,7 +5,7 @@ @interface REAInitializerRCTFabricSurface : RCTFabricSurface -@property REAModule *reaModule; +@property __weak REAModule *reaModule; @end diff --git a/packages/react-native-reanimated/apple/reanimated/apple/LayoutReanimation/REASharedTransitionManager.m b/packages/react-native-reanimated/apple/reanimated/apple/LayoutReanimation/REASharedTransitionManager.m index 1bf674b1d6b4..7e35f1bbdbd0 100644 --- a/packages/react-native-reanimated/apple/reanimated/apple/LayoutReanimation/REASharedTransitionManager.m +++ b/packages/react-native-reanimated/apple/reanimated/apple/LayoutReanimation/REASharedTransitionManager.m @@ -576,10 +576,26 @@ - (void)handleTabNavigatorChange:(REAUIView *)layoutedScreen return; } + // Add safety check for disappearing screens + if ([_disappearingScreens count] == 0) { + return; + } + REAUIView *navTabScreen = _disappearingScreens[0]; REAUIView *sourceScreen = _disappearingScreens[[_disappearingScreens count] - 1]; + + // Add null checks + if (!navTabScreen || !navTabScreen.reactSuperview) { + return; + } + REAUIView *targetTabScreen = [REAScreensHelper getActiveTabForTabNavigator:navTabScreen.reactSuperview]; REAUIView *targetScreen = [REAScreensHelper findTopScreenInChildren:targetTabScreen]; + + if (!targetScreen) { + return; + } + if (!layoutedScreen && _isTabNavigator) { // just wait for the next layout computation for your screen return; diff --git a/packages/react-native-reanimated/apple/reanimated/apple/REAModule.mm b/packages/react-native-reanimated/apple/reanimated/apple/REAModule.mm index aa09b5ca3af2..8c8ec4236049 100644 --- a/packages/react-native-reanimated/apple/reanimated/apple/REAModule.mm +++ b/packages/react-native-reanimated/apple/reanimated/apple/REAModule.mm @@ -195,9 +195,10 @@ - (void)setBridge:(RCTBridge *)bridge - (void)setReaSurfacePresenter { - if (reaSurface == nil) { - // we need only one instance because SurfacePresenter is the same during the application lifetime - reaSurface = [[REAInitializerRCTFabricSurface alloc] init]; + if (_surfacePresenter && ![_surfacePresenter surfaceForRootTag:reaSurface.rootTag]) { + if (!reaSurface) { + reaSurface = [[REAInitializerRCTFabricSurface alloc] init]; + } [_surfacePresenter registerSurface:reaSurface]; } reaSurface.reaModule = self; diff --git a/packages/react-native-reanimated/package.json b/packages/react-native-reanimated/package.json index d55c5a1dbd5e..249af1a7e752 100644 --- a/packages/react-native-reanimated/package.json +++ b/packages/react-native-reanimated/package.json @@ -1,6 +1,6 @@ { "name": "react-native-reanimated", - "version": "3.16.3", + "version": "3.16.4", "description": "More powerful alternative to Animated library for React Native.", "scripts": { "test": "jest", diff --git a/packages/react-native-reanimated/src/platform-specific/jsVersion.ts b/packages/react-native-reanimated/src/platform-specific/jsVersion.ts index f874f75219b9..f32f29b23172 100644 --- a/packages/react-native-reanimated/src/platform-specific/jsVersion.ts +++ b/packages/react-native-reanimated/src/platform-specific/jsVersion.ts @@ -4,4 +4,4 @@ * version used to build the native part of the library in runtime. Remember to * keep this in sync with the version declared in `package.json` */ -export const jsVersion = '3.16.3'; +export const jsVersion = '3.16.4';