diff --git a/ios/Podfile.lock b/ios/Podfile.lock index b3fb491d614a..0a16b9b4d196 100644 --- a/ios/Podfile.lock +++ b/ios/Podfile.lock @@ -1840,7 +1840,7 @@ PODS: - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - Yoga - - react-native-quick-sqlite (8.0.6): + - react-native-quick-sqlite (8.1.0): - DoubleConversion - glog - hermes-engine @@ -2474,7 +2474,51 @@ PODS: - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - Yoga - - RNReanimated (3.13.0): + - RNReanimated (3.15.1): + - DoubleConversion + - glog + - hermes-engine + - RCT-Folly (= 2024.01.01.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-debug + - React-Fabric + - React-featureflags + - React-graphics + - React-ImageManager + - React-NativeModulesApple + - React-RCTFabric + - React-rendererdebug + - React-utils + - ReactCodegen + - ReactCommon/turbomodule/bridging + - ReactCommon/turbomodule/core + - RNReanimated/reanimated (= 3.15.1) + - RNReanimated/worklets (= 3.15.1) + - Yoga + - RNReanimated/reanimated (3.15.1): + - DoubleConversion + - glog + - hermes-engine + - RCT-Folly (= 2024.01.01.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-debug + - React-Fabric + - React-featureflags + - React-graphics + - React-ImageManager + - React-NativeModulesApple + - React-RCTFabric + - React-rendererdebug + - React-utils + - ReactCodegen + - ReactCommon/turbomodule/bridging + - ReactCommon/turbomodule/core + - Yoga + - RNReanimated/worklets (3.15.1): - DoubleConversion - glog - hermes-engine @@ -3147,7 +3191,7 @@ SPEC CHECKSUMS: react-native-pdf: dd6ae39a93607a80919bef9f3499e840c693989d react-native-performance: 3c608307be10964f8a97d3af462f37125b6d8fa5 react-native-plaid-link-sdk: f91a22b45b7c3d4cd6c47273200dc57df35068b0 - react-native-quick-sqlite: cc2939134fbd404ac7d51d3dc8d69219eff242a8 + react-native-quick-sqlite: 7c793c9f5834e756b336257a8d8b8239b7ceb451 react-native-release-profiler: 131ec5e4145d900b2be2a8d6641e2ce0dd784259 react-native-safe-area-context: 38fdd9b3c5561de7cabae64bd0cd2ce05d2768a1 react-native-view-shot: 6b7ed61d77d88580fed10954d45fad0eb2d47688 @@ -3196,7 +3240,7 @@ SPEC CHECKSUMS: rnmapbox-maps: 5ab6bfd249cd67262615153c648f8d809aab781c RNPermissions: 0b1429b55af59d1d08b75a8be2459f65a8ac3f28 RNReactNativeHapticFeedback: a15b431d2903bc2eb3474ff8d9a05d3e67a70199 - RNReanimated: 601912257776588e7c0543f8dea4ba6dd393e9d0 + RNReanimated: 76901886830e1032f16bbf820153f7dc3f02d51d RNScreens: de6e57426ba0e6cbc3fb5b4f496e7f08cb2773c2 RNShare: a3c2fbbca5682530b65ff405b34c91dad1e22442 RNSound: 6c156f925295bdc83e8e422e7d8b38d33bc71852 @@ -3208,7 +3252,7 @@ SPEC CHECKSUMS: SocketRocket: abac6f5de4d4d62d24e11868d7a2f427e0ef940d Turf: aa2ede4298009639d10db36aba1a7ebaad072a5e VisionCamera: c6c8aa4b028501fc87644550fbc35a537d4da3fb - Yoga: 2a45d7e59592db061217551fd3bbe2dd993817ae + Yoga: a1d7895431387402a674fd0d1c04ec85e87909b8 PODFILE CHECKSUM: e479ec84cb53e5fd463486d71dfee91708d3fd9a diff --git a/package-lock.json b/package-lock.json index 8e1b8c2007e1..0980a334cfcf 100644 --- a/package-lock.json +++ b/package-lock.json @@ -112,7 +112,7 @@ "react-native-plaid-link-sdk": "11.11.0", "react-native-qrcode-svg": "git+https://github.com/Expensify/react-native-qrcode-svg-old", "react-native-quick-sqlite": "git+https://github.com/margelo/react-native-quick-sqlite#99f34ebefa91698945f3ed26622e002bd79489e0", - "react-native-reanimated": "3.13.0", + "react-native-reanimated": "3.15.1", "react-native-release-profiler": "^0.2.1", "react-native-render-html": "6.3.1", "react-native-safe-area-context": "4.10.9", @@ -38321,14 +38321,18 @@ } }, "node_modules/react-native-reanimated": { - "version": "3.13.0", - "license": "MIT", + "version": "3.15.1", + "resolved": "https://registry.npmjs.org/react-native-reanimated/-/react-native-reanimated-3.15.1.tgz", + "integrity": "sha512-DbBeUUExtJ1x1nfE94I8qgDgWjq5ztM3IO/+XFO+agOkPeVpBs5cRnxHfJKrjqJ2MgwhJOUDmtHxo+tDsoeitg==", "dependencies": { "@babel/plugin-transform-arrow-functions": "^7.0.0-0", + "@babel/plugin-transform-class-properties": "^7.0.0-0", + "@babel/plugin-transform-classes": "^7.0.0-0", "@babel/plugin-transform-nullish-coalescing-operator": "^7.0.0-0", "@babel/plugin-transform-optional-chaining": "^7.0.0-0", "@babel/plugin-transform-shorthand-properties": "^7.0.0-0", "@babel/plugin-transform-template-literals": "^7.0.0-0", + "@babel/plugin-transform-unicode-regex": "^7.0.0-0", "@babel/preset-typescript": "^7.16.7", "convert-source-map": "^2.0.0", "invariant": "^2.2.4" diff --git a/package.json b/package.json index 9b5a7f6a2dc7..fcc067516c34 100644 --- a/package.json +++ b/package.json @@ -169,7 +169,7 @@ "react-native-plaid-link-sdk": "11.11.0", "react-native-qrcode-svg": "git+https://github.com/Expensify/react-native-qrcode-svg-old", "react-native-quick-sqlite": "git+https://github.com/margelo/react-native-quick-sqlite#99f34ebefa91698945f3ed26622e002bd79489e0", - "react-native-reanimated": "3.13.0", + "react-native-reanimated": "3.15.1", "react-native-release-profiler": "^0.2.1", "react-native-render-html": "6.3.1", "react-native-safe-area-context": "4.10.9", diff --git a/patches/react-native-reanimated+3.13.0+002+rn-75-fixes.patch b/patches/react-native-reanimated+3.13.0+002+rn-75-fixes.patch deleted file mode 100644 index 68b45d4658a7..000000000000 --- a/patches/react-native-reanimated+3.13.0+002+rn-75-fixes.patch +++ /dev/null @@ -1,142 +0,0 @@ -diff --git a/node_modules/react-native-reanimated/android/src/main/java/com/swmansion/reanimated/ReactNativeUtils.java b/node_modules/react-native-reanimated/android/src/main/java/com/swmansion/reanimated/ReactNativeUtils.java -index 3667652..2c2d9e1 100644 ---- a/node_modules/react-native-reanimated/android/src/main/java/com/swmansion/reanimated/ReactNativeUtils.java -+++ b/node_modules/react-native-reanimated/android/src/main/java/com/swmansion/reanimated/ReactNativeUtils.java -@@ -2,6 +2,9 @@ package com.swmansion.reanimated; - - import android.graphics.drawable.Drawable; - import android.view.View; -+import com.facebook.react.uimanager.drawable.CSSBackgroundDrawable; -+import com.facebook.react.uimanager.style.BorderRadiusProp; -+import com.facebook.react.uimanager.style.ComputedBorderRadius; - import com.facebook.react.views.image.ReactImageView; - import com.facebook.react.views.view.ReactViewBackgroundDrawable; - import java.lang.reflect.Field; -@@ -29,15 +32,15 @@ public class ReactNativeUtils { - public static BorderRadii getBorderRadii(View view) { - if (view.getBackground() != null) { - Drawable background = view.getBackground(); -- if (background instanceof ReactViewBackgroundDrawable) { -- ReactViewBackgroundDrawable drawable = (ReactViewBackgroundDrawable) background; -+ if (background instanceof CSSBackgroundDrawable drawable) { -+ ComputedBorderRadius computedBorderRadius = drawable.getComputedBorderRadius(); - return new BorderRadii( -- drawable.getFullBorderRadius(), -- drawable.getBorderRadius(ReactViewBackgroundDrawable.BorderRadiusLocation.TOP_LEFT), -- drawable.getBorderRadius(ReactViewBackgroundDrawable.BorderRadiusLocation.TOP_RIGHT), -- drawable.getBorderRadius(ReactViewBackgroundDrawable.BorderRadiusLocation.BOTTOM_LEFT), -- drawable.getBorderRadius( -- ReactViewBackgroundDrawable.BorderRadiusLocation.BOTTOM_RIGHT)); -+ // TODO: get full border radius -+ computedBorderRadius.getTopLeft(), -+ computedBorderRadius.getTopLeft(), -+ computedBorderRadius.getTopRight(), -+ computedBorderRadius.getBottomLeft(), -+ computedBorderRadius.getBottomRight()); - } - } else if (view instanceof ReactImageView) { - try { -diff --git a/node_modules/react-native-reanimated/android/src/reactNativeVersionPatch/ReactFeatureFlagsWrapper/latest/com/swmansion/reanimated/ReactFeatureFlagsWrapper.java b/node_modules/react-native-reanimated/android/src/reactNativeVersionPatch/ReactFeatureFlagsWrapper/latest/com/swmansion/reanimated/ReactFeatureFlagsWrapper.java -deleted file mode 100644 -index a6a2c16..0000000 ---- a/node_modules/react-native-reanimated/android/src/reactNativeVersionPatch/ReactFeatureFlagsWrapper/latest/com/swmansion/reanimated/ReactFeatureFlagsWrapper.java -+++ /dev/null -@@ -1,11 +0,0 @@ --package com.swmansion.reanimated; -- --import com.facebook.react.config.ReactFeatureFlags; -- --public class ReactFeatureFlagsWrapper { -- -- public static void enableMountHooks() { -- ReactFeatureFlags.enableMountHooks = true; -- } -- --} -diff --git a/node_modules/react-native-reanimated/android/src/reactNativeVersionPatch/ReanimatedUIManager/latest/com/swmansion/reanimated/layoutReanimation/ReanimatedUIManager.java b/node_modules/react-native-reanimated/android/src/reactNativeVersionPatch/ReanimatedUIManager/latest/com/swmansion/reanimated/layoutReanimation/ReanimatedUIManager.java -index 256906f..9c84f87 100644 ---- a/node_modules/react-native-reanimated/android/src/reactNativeVersionPatch/ReanimatedUIManager/latest/com/swmansion/reanimated/layoutReanimation/ReanimatedUIManager.java -+++ b/node_modules/react-native-reanimated/android/src/reactNativeVersionPatch/ReanimatedUIManager/latest/com/swmansion/reanimated/layoutReanimation/ReanimatedUIManager.java -@@ -125,22 +125,6 @@ public class ReanimatedUIManager extends UIManagerModule { - super.measureLayout(tag, ancestorTag, errorCallback, successCallback); - } - -- /** -- * Like {@link #measure} and {@link #measureLayout} but measures relative to the immediate parent. -- * -- *

NB: Unlike {@link #measure}, this will measure relative to the view layout, not the visible -- * window which can cause unexpected results when measuring relative to things like ScrollViews -- * that can have offset content on the screen. -- * -- * @deprecated this method will not be available in FabricUIManager class. -- */ -- @ReactMethod -- @Deprecated -- public void measureLayoutRelativeToParent( -- int tag, Callback errorCallback, Callback successCallback) { -- super.measureLayoutRelativeToParent(tag, errorCallback, successCallback); -- } -- - /** - * Find the touch target child native view in the supplied root view hierarchy, given a react - * target location. -@@ -186,26 +170,6 @@ public class ReanimatedUIManager extends UIManagerModule { - super.dispatchViewManagerCommand(reactTag, commandId, commandArgs); - } - -- /** -- * Show a PopupMenu. -- * -- * @param reactTag the tag of the anchor view (the PopupMenu is displayed next to this view); this -- * needs to be the tag of a native view (shadow views can not be anchors) -- * @param items the menu items as an array of strings -- * @param error will be called if there is an error displaying the menu -- * @param success will be called with the position of the selected item as the first argument, or -- * no arguments if the menu is dismissed -- */ -- @ReactMethod -- public void showPopupMenu(int reactTag, ReadableArray items, Callback error, Callback success) { -- super.showPopupMenu(reactTag, items, error, success); -- } -- -- @ReactMethod -- public void dismissPopupMenu() { -- super.dismissPopupMenu(); -- } -- - /** - * LayoutAnimation API on Android is currently experimental. Therefore, it needs to be enabled - * explicitly in order to avoid regression in existing application written for iOS using this API. -diff --git a/node_modules/react-native-reanimated/android/src/reactNativeVersionPatch/RuntimeExecutor/latest/com/swmansion/reanimated/NativeProxy.java b/node_modules/react-native-reanimated/android/src/reactNativeVersionPatch/RuntimeExecutor/latest/com/swmansion/reanimated/NativeProxy.java -index 3902e82..673b2bb 100644 ---- a/node_modules/react-native-reanimated/android/src/reactNativeVersionPatch/RuntimeExecutor/latest/com/swmansion/reanimated/NativeProxy.java -+++ b/node_modules/react-native-reanimated/android/src/reactNativeVersionPatch/RuntimeExecutor/latest/com/swmansion/reanimated/NativeProxy.java -@@ -26,7 +26,6 @@ public class NativeProxy extends NativeProxyCommon { - - public @OptIn(markerClass = FrameworkAPI.class) NativeProxy(ReactApplicationContext context, String valueUnpackerCode) { - super(context); -- ReactFeatureFlagsWrapper.enableMountHooks(); - - FabricUIManager fabricUIManager = - (FabricUIManager) UIManagerHelper.getUIManager(context, UIManagerType.FABRIC); -@@ -37,7 +36,7 @@ public class NativeProxy extends NativeProxyCommon { - - - if (context.isBridgeless()) { -- RuntimeExecutor runtimeExecutor = context.getRuntimeExecutor(); -+ RuntimeExecutor runtimeExecutor = context.getCatalystInstance().getRuntimeExecutor(); - mHybridData = initHybridBridgeless( - Objects.requireNonNull(context.getJavaScriptContextHolder()).get(), - runtimeExecutor, -diff --git a/node_modules/react-native-reanimated/Common/cpp/LayoutAnimations/LayoutAnimationsProxy.cpp b/node_modules/react-native-reanimated/Common/cpp/LayoutAnimations/LayoutAnimationsProxy.cpp -index f219e5d..dd714dc 100644 ---- a/node_modules/react-native-reanimated/Common/cpp/LayoutAnimations/LayoutAnimationsProxy.cpp -+++ b/node_modules/react-native-reanimated/Common/cpp/LayoutAnimations/LayoutAnimationsProxy.cpp -@@ -697,6 +697,7 @@ void LayoutAnimationsProxy::transferConfigFromNativeID( - auto nativeId = stoi(nativeIdString); - layoutAnimationsManager_->transferConfigFromNativeID(nativeId, tag); - } catch (std::invalid_argument) { -+ } catch (std::out_of_range) { - } - } - diff --git a/patches/react-native-reanimated+3.13.0+005+proper-navigator-types.patch b/patches/react-native-reanimated+3.13.0+005+proper-navigator-types.patch deleted file mode 100644 index 59e577444d3e..000000000000 --- a/patches/react-native-reanimated+3.13.0+005+proper-navigator-types.patch +++ /dev/null @@ -1,29 +0,0 @@ -diff --git a/node_modules/react-native-reanimated/lib/typescript/js-reanimated/JSReanimated.d.ts b/node_modules/react-native-reanimated/lib/typescript/js-reanimated/JSReanimated.d.ts -index 5c34476..df9a9b7 100644 ---- a/node_modules/react-native-reanimated/lib/typescript/js-reanimated/JSReanimated.d.ts -+++ b/node_modules/react-native-reanimated/lib/typescript/js-reanimated/JSReanimated.d.ts -@@ -36,8 +36,8 @@ declare enum Platform { - } - declare global { - interface Navigator { -- userAgent?: string; -- vendor?: string; -+ userAgent: string; -+ vendor: string; - } - } - export {}; -diff --git a/node_modules/react-native-reanimated/src/js-reanimated/JSReanimated.ts b/node_modules/react-native-reanimated/src/js-reanimated/JSReanimated.ts -index 29cda27..28ec9d2 100644 ---- a/node_modules/react-native-reanimated/src/js-reanimated/JSReanimated.ts -+++ b/node_modules/react-native-reanimated/src/js-reanimated/JSReanimated.ts -@@ -311,7 +311,7 @@ enum Platform { - - declare global { - interface Navigator { -- userAgent?: string; -- vendor?: string; -+ userAgent: string; -+ vendor: string; - } - } diff --git a/patches/react-native-reanimated+3.13.0+006+fixNoExportedMember.patch b/patches/react-native-reanimated+3.13.0+006+fixNoExportedMember.patch deleted file mode 100644 index 22827fa1f96d..000000000000 --- a/patches/react-native-reanimated+3.13.0+006+fixNoExportedMember.patch +++ /dev/null @@ -1,24 +0,0 @@ -diff --git a/node_modules/react-native-reanimated/lib/module/platform-specific/RNRenderer.web.js b/node_modules/react-native-reanimated/lib/module/platform-specific/RNRenderer.web.js -index a9b2299..6a97aea 100644 ---- a/node_modules/react-native-reanimated/lib/module/platform-specific/RNRenderer.web.js -+++ b/node_modules/react-native-reanimated/lib/module/platform-specific/RNRenderer.web.js -@@ -1,5 +1,6 @@ - 'use strict'; - - // RNRender is not used for web. An export is still defined to eliminate warnings from bundlers such as esbuild. --export {}; -+const RNRenderer = {}; -+export { RNRenderer }; - //# sourceMappingURL=RNRenderer.web.js.map -\ No newline at end of file -diff --git a/node_modules/react-native-reanimated/src/platform-specific/RNRenderer.web.ts b/node_modules/react-native-reanimated/src/platform-specific/RNRenderer.web.ts -index f9eb5e3..b51ae1d 100644 ---- a/node_modules/react-native-reanimated/src/platform-specific/RNRenderer.web.ts -+++ b/node_modules/react-native-reanimated/src/platform-specific/RNRenderer.web.ts -@@ -1,3 +1,4 @@ - 'use strict'; - // RNRender is not used for web. An export is still defined to eliminate warnings from bundlers such as esbuild. --export {}; -+const RNRenderer = {}; -+export { RNRenderer }; -\ No newline at end of file diff --git a/patches/react-native-reanimated+3.13.0+001+hybrid-app.patch b/patches/react-native-reanimated+3.15.1+001+hybrid-app.patch similarity index 100% rename from patches/react-native-reanimated+3.13.0+001+hybrid-app.patch rename to patches/react-native-reanimated+3.15.1+001+hybrid-app.patch diff --git a/patches/react-native-reanimated+3.13.0+003+dontWhitelistTextProp.patch b/patches/react-native-reanimated+3.15.1+002+dontWhitelistTextProp.patch similarity index 80% rename from patches/react-native-reanimated+3.13.0+003+dontWhitelistTextProp.patch rename to patches/react-native-reanimated+3.15.1+002+dontWhitelistTextProp.patch index 4ba96ac8659f..6084dca4adc8 100644 --- a/patches/react-native-reanimated+3.13.0+003+dontWhitelistTextProp.patch +++ b/patches/react-native-reanimated+3.15.1+002+dontWhitelistTextProp.patch @@ -1,11 +1,11 @@ diff --git a/node_modules/react-native-reanimated/src/component/PerformanceMonitor.tsx b/node_modules/react-native-reanimated/src/component/PerformanceMonitor.tsx -index 9e66803..3620fe9 100644 +index 38e3d39..9936670 100644 --- a/node_modules/react-native-reanimated/src/component/PerformanceMonitor.tsx +++ b/node_modules/react-native-reanimated/src/component/PerformanceMonitor.tsx -@@ -47,7 +47,6 @@ function createCircularDoublesBuffer(size: number) { +@@ -46,7 +46,6 @@ function createCircularDoublesBuffer(size: number) { } - const DEFAULT_BUFFER_SIZE = 60; + const DEFAULT_BUFFER_SIZE = 20; -addWhitelistedNativeProps({ text: true }); const AnimatedTextInput = createAnimatedComponent(TextInput); diff --git a/patches/react-native-reanimated+3.13.0+004+fixNullViewTag.patch b/patches/react-native-reanimated+3.15.1+003+fixNullViewTag.patch similarity index 100% rename from patches/react-native-reanimated+3.13.0+004+fixNullViewTag.patch rename to patches/react-native-reanimated+3.15.1+003+fixNullViewTag.patch