diff --git a/package.json b/package.json index be10ce6b30..6f4248591b 100644 --- a/package.json +++ b/package.json @@ -229,7 +229,7 @@ "react-native-drawer-layout": "^4.2.3", "react-native-edge-to-edge": "^1.8.1", "react-native-gesture-handler": "~2.32.0", - "react-native-keyboard-controller": "^1.21.9", + "react-native-keyboard-controller": "1.21.9", "react-native-mmkv": "^3.3.3", "react-native-pager-view": "6.8.0", "react-native-progress": "^5.0.1", diff --git a/patches/react-native-screens@4.24.0.patch b/patches/react-native-screens@4.26.2.patch similarity index 83% rename from patches/react-native-screens@4.24.0.patch rename to patches/react-native-screens@4.26.2.patch index 7fa3607d4c..471757be87 100644 --- a/patches/react-native-screens@4.24.0.patch +++ b/patches/react-native-screens@4.26.2.patch @@ -1,28 +1,28 @@ diff --git a/android/src/main/java/com/swmansion/rnscreens/Screen.kt b/android/src/main/java/com/swmansion/rnscreens/Screen.kt -index c99ca362df5baee81fa48d1c9ef09b40a2c23f07..725c07aa0ed516f9dd09f81e522f2d3191d9b5d0 100644 +index 76bb694854b29d7f779f38244cd48113b429ea1f..fd402ac938862e8d39c5467c1b5c86c4e7eb0c83 100644 --- a/android/src/main/java/com/swmansion/rnscreens/Screen.kt +++ b/android/src/main/java/com/swmansion/rnscreens/Screen.kt -@@ -17,6 +17,7 @@ import androidx.annotation.RequiresApi +@@ -16,6 +16,7 @@ import androidx.annotation.RequiresApi import androidx.coordinatorlayout.widget.CoordinatorLayout import androidx.core.view.children import androidx.fragment.app.Fragment +import androidx.recyclerview.widget.RecyclerView import androidx.swiperefreshlayout.widget.SwipeRefreshLayout - import com.facebook.react.bridge.GuardedRunnable import com.facebook.react.bridge.ReactContext -@@ -637,7 +638,7 @@ class Screen( + import com.facebook.react.uimanager.PixelUtil +@@ -462,7 +463,7 @@ class Screen( endTransitionRecursive(childView.toolbar) } - + - if (childView is ViewGroup) { + if (childView is ViewGroup && childView !is RecyclerView) { endTransitionRecursive(childView) } } -@@ -666,7 +667,10 @@ class Screen( +@@ -491,7 +492,10 @@ class Screen( startTransitionRecursive(child.toolbar) } - + - if (child is ViewGroup) { + // Transition a RecyclerView as one unit. Marking its recyclable children as + // transitioning keeps their parent set after removal, so RecyclerView crashes diff --git a/patches/react-native-screens@4.24.0.patch.md b/patches/react-native-screens@4.26.2.patch.md similarity index 96% rename from patches/react-native-screens@4.24.0.patch.md rename to patches/react-native-screens@4.26.2.patch.md index 99e522eeeb..7b1c19600a 100644 --- a/patches/react-native-screens@4.24.0.patch.md +++ b/patches/react-native-screens@4.26.2.patch.md @@ -1,4 +1,4 @@ -# react-native-screens+4.24.0.patch +# react-native-screens+4.26.2.patch ## Android: do not transition RecyclerView children individually diff --git a/patches/react-native@0.86.0.patch b/patches/react-native@0.86.0.patch index 2fcc63c350..d8e1d6a320 100644 --- a/patches/react-native@0.86.0.patch +++ b/patches/react-native@0.86.0.patch @@ -1,8 +1,8 @@ diff --git a/React/Fabric/Mounting/ComponentViews/ScrollView/RCTEnhancedScrollView.mm b/React/Fabric/Mounting/ComponentViews/ScrollView/RCTEnhancedScrollView.mm -index c593d9ee2155a826352ebca34845aa5792b2eec3..3c26cd737f21116ff0aa48190e97e6c0649b5fac 100644 +index 1b02e8b2d39672063551411d5c403a69b671a869..b3481c1b98b45dea769035140dc2fd8d9b088b24 100644 --- a/React/Fabric/Mounting/ComponentViews/ScrollView/RCTEnhancedScrollView.mm +++ b/React/Fabric/Mounting/ComponentViews/ScrollView/RCTEnhancedScrollView.mm -@@ -101,6 +101,20 @@ - (void)setContentOffset:(CGPoint)contentOffset +@@ -102,6 +102,20 @@ - (void)setContentOffset:(CGPoint)contentOffset RCTSanitizeNaNValue(contentOffset.y, @"scrollView.contentOffset.y")); } @@ -37,10 +37,10 @@ index 914a2494a57923fbf185644b7e2bb8aca8848e56..0deac55f22350f5e8377d8963fb1c243 NS_ASSUME_NONNULL_END diff --git a/React/Fabric/Mounting/ComponentViews/ScrollView/RCTScrollViewComponentView.mm b/React/Fabric/Mounting/ComponentViews/ScrollView/RCTScrollViewComponentView.mm -index 1494fd225aff1fa0429e917404d6b4ca5fc961c5..d0cce700090245444f8ce51e517d5ceca09526f6 100644 +index a087536f3af0d33b13fe38d8abd1bc6d7935def2..01f5c884ea4772350c0ebe6263723d97632f2b74 100644 --- a/React/Fabric/Mounting/ComponentViews/ScrollView/RCTScrollViewComponentView.mm +++ b/React/Fabric/Mounting/ComponentViews/ScrollView/RCTScrollViewComponentView.mm -@@ -380,7 +380,15 @@ - (void)updateProps:(const Props::Shared &)props oldProps:(const Props::Shared & +@@ -396,7 +396,15 @@ - (void)updateProps:(const Props::Shared &)props oldProps:(const Props::Shared & MAP_SCROLL_VIEW_PROP(zoomScale); @@ -57,7 +57,7 @@ index 1494fd225aff1fa0429e917404d6b4ca5fc961c5..d0cce700090245444f8ce51e517d5cec _scrollView.contentInset = RCTUIEdgeInsetsFromEdgeInsets(newScrollViewProps.contentInset); } -@@ -507,7 +515,7 @@ - (UIView *)betterHitTest:(CGPoint)point withEvent:(UIEvent *)event +@@ -523,7 +531,7 @@ - (UIView *)betterHitTest:(CGPoint)point withEvent:(UIEvent *)event } } @@ -66,7 +66,7 @@ index 1494fd225aff1fa0429e917404d6b4ca5fc961c5..d0cce700090245444f8ce51e517d5cec } /* -@@ -1133,6 +1133,11 @@ - (RCTVirtualViewContainerState *)virtualViewContainerState +@@ -1133,6 +1141,11 @@ - (RCTVirtualViewContainerState *)virtualViewContainerState return _virtualViewContainerState; } @@ -79,21 +79,22 @@ index 1494fd225aff1fa0429e917404d6b4ca5fc961c5..d0cce700090245444f8ce51e517d5cec Class RCTScrollViewCls(void) diff --git a/React/Views/RefreshControl/RCTRefreshControl.h b/React/Views/RefreshControl/RCTRefreshControl.h -index e9b330fa7c29c42653a3b0191d0f8a1b13b2d3de..5fbb2e05cadfc06fd7a18bf52b81bc399e92f3ca 100644 +index ed306d7cadbf36a2fed79be8bd9d68b5dca135bd..d447dad534fefa9fcbdbbde6dcbbdcddadd5a824 100644 --- a/React/Views/RefreshControl/RCTRefreshControl.h +++ b/React/Views/RefreshControl/RCTRefreshControl.h -@@ -15,5 +15,6 @@ +@@ -18,6 +18,7 @@ __attribute__((deprecated("This API will be removed along with the legacy archit @property (nonatomic, copy) NSString *title; @property (nonatomic, copy) RCTDirectEventBlock onRefresh; @property (nonatomic, weak) UIScrollView *scrollView; +@property (nonatomic, copy) UIColor *customTintColor; @end + diff --git a/React/Views/RefreshControl/RCTRefreshControl.m b/React/Views/RefreshControl/RCTRefreshControl.m -index 53bfd04703502d5b8e932c47a528bb03cd79d330..e2e0c9f4e5d1a3a3b178a7ec69aa63e3039b6dec 100644 +index 2dc86e464264c9450eef18d7b153d35bf6a5cc55..6661dc69a04766afa0284d6e83839b219e98cf57 100644 --- a/React/Views/RefreshControl/RCTRefreshControl.m +++ b/React/Views/RefreshControl/RCTRefreshControl.m -@@ -23,6 +23,7 @@ @implementation RCTRefreshControl { +@@ -25,6 +25,7 @@ @implementation RCTRefreshControl { UIColor *_titleColor; CGFloat _progressViewOffset; BOOL _hasMovedToWindow; @@ -101,7 +102,7 @@ index 53bfd04703502d5b8e932c47a528bb03cd79d330..e2e0c9f4e5d1a3a3b178a7ec69aa63e3 } - (instancetype)init -@@ -58,6 +59,12 @@ - (void)layoutSubviews +@@ -60,6 +61,12 @@ - (void)layoutSubviews _isInitialRender = false; } @@ -114,7 +115,7 @@ index 53bfd04703502d5b8e932c47a528bb03cd79d330..e2e0c9f4e5d1a3a3b178a7ec69aa63e3 - (void)didMoveToWindow { [super didMoveToWindow]; -@@ -221,4 +228,16 @@ - (void)refreshControlValueChanged +@@ -225,6 +232,18 @@ - (void)refreshControlValueChanged } } @@ -131,11 +132,13 @@ index 53bfd04703502d5b8e932c47a528bb03cd79d330..e2e0c9f4e5d1a3a3b178a7ec69aa63e3 +} + @end + + #endif // RCT_REMOVE_LEGACY_ARCH diff --git a/React/Views/RefreshControl/RCTRefreshControlManager.m b/React/Views/RefreshControl/RCTRefreshControlManager.m -index 40aaf9c51ebda9fedb1d1db2e9aacec84b4c39c8..1c60164b69762997b3369b46609a07768a06bad3 100644 +index 1e9ff527f4e6691d716da624031113a397876981..44329c5422c6f24d8a437fa35c6f2bad6bf8622b 100644 --- a/React/Views/RefreshControl/RCTRefreshControlManager.m +++ b/React/Views/RefreshControl/RCTRefreshControlManager.m -@@ -22,11 +22,12 @@ - (UIView *)view +@@ -24,11 +24,12 @@ - (UIView *)view RCT_EXPORT_VIEW_PROPERTY(onRefresh, RCTDirectEventBlock) RCT_EXPORT_VIEW_PROPERTY(refreshing, BOOL) @@ -150,10 +153,10 @@ index 40aaf9c51ebda9fedb1d1db2e9aacec84b4c39c8..1c60164b69762997b3369b46609a0776 { [self.bridge.uiManager addUIBlock:^(RCTUIManager *uiManager, NSDictionary *viewRegistry) { diff --git a/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactViewGroup.kt b/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactViewGroup.kt -index 89b666dcf0258df0702c812600b685463128294c..2b1c3971f0c31a0d7a592b90170e4cc53a8a69dd 100644 +index 59775241c80bec99ad3ec080f2425aacc8900c24..426de3aa77cda2032d7b0991e2ca3f8482a438d3 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactViewGroup.kt +++ b/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactViewGroup.kt -@@ -431,6 +431,13 @@ public open class ReactViewGroup public constructor(context: Context?) : +@@ -459,6 +459,13 @@ public open class ReactViewGroup public constructor(context: Context?) : inSubviewClippingLoop = true var clippedSoFar = 0 for (i in 0..