Remove unused ScrollForwarder React Native patches (#11295)
This commit is contained in:
@@ -23,19 +23,6 @@ index c593d9ee2155a826352ebca34845aa5792b2eec3..3c26cd737f21116ff0aa48190e97e6c0
|
|||||||
- (void)setFrame:(CGRect)frame
|
- (void)setFrame:(CGRect)frame
|
||||||
{
|
{
|
||||||
[super setFrame:frame];
|
[super setFrame:frame];
|
||||||
diff --git a/React/Fabric/Mounting/ComponentViews/ScrollView/RCTPullToRefreshViewComponentView.h b/React/Fabric/Mounting/ComponentViews/ScrollView/RCTPullToRefreshViewComponentView.h
|
|
||||||
index 914a2494a57923fbf185644b7e2bb8aca8848e56..0deac55f22350f5e8377d8963fb1c2434bf6abfd 100644
|
|
||||||
--- a/React/Fabric/Mounting/ComponentViews/ScrollView/RCTPullToRefreshViewComponentView.h
|
|
||||||
+++ b/React/Fabric/Mounting/ComponentViews/ScrollView/RCTPullToRefreshViewComponentView.h
|
|
||||||
@@ -19,6 +19,8 @@ NS_ASSUME_NONNULL_BEGIN
|
|
||||||
*/
|
|
||||||
@interface RCTPullToRefreshViewComponentView : RCTViewComponentView <RCTCustomPullToRefreshViewProtocol>
|
|
||||||
|
|
||||||
+- (void)beginRefreshingProgrammatically;
|
|
||||||
+
|
|
||||||
@end
|
|
||||||
|
|
||||||
NS_ASSUME_NONNULL_END
|
|
||||||
diff --git a/React/Fabric/Mounting/ComponentViews/ScrollView/RCTPullToRefreshViewComponentView.mm b/React/Fabric/Mounting/ComponentViews/ScrollView/RCTPullToRefreshViewComponentView.mm
|
diff --git a/React/Fabric/Mounting/ComponentViews/ScrollView/RCTPullToRefreshViewComponentView.mm b/React/Fabric/Mounting/ComponentViews/ScrollView/RCTPullToRefreshViewComponentView.mm
|
||||||
index 0d231bc8aa938da296eb3b981e8ac9595a43b87f..be0a10d9c4de1892fa00bcbf8d63d739b66d8ffe 100644
|
index 0d231bc8aa938da296eb3b981e8ac9595a43b87f..be0a10d9c4de1892fa00bcbf8d63d739b66d8ffe 100644
|
||||||
--- a/React/Fabric/Mounting/ComponentViews/ScrollView/RCTPullToRefreshViewComponentView.mm
|
--- a/React/Fabric/Mounting/ComponentViews/ScrollView/RCTPullToRefreshViewComponentView.mm
|
||||||
@@ -102,20 +89,18 @@ index 1494fd225aff1fa0429e917404d6b4ca5fc961c5..d0cce700090245444f8ce51e517d5cec
|
|||||||
|
|
||||||
Class<RCTComponentViewProtocol> RCTScrollViewCls(void)
|
Class<RCTComponentViewProtocol> RCTScrollViewCls(void)
|
||||||
diff --git a/React/Views/RefreshControl/RCTRefreshControl.h b/React/Views/RefreshControl/RCTRefreshControl.h
|
diff --git a/React/Views/RefreshControl/RCTRefreshControl.h b/React/Views/RefreshControl/RCTRefreshControl.h
|
||||||
index e9b330fa7c29c42653a3b0191d0f8a1b13b2d3de..ec5f58c887bfd949f1279ef1c31352e0b465e9ec 100644
|
index e9b330fa7c29c42653a3b0191d0f8a1b13b2d3de..5fbb2e05cadfc06fd7a18bf52b81bc399e92f3ca 100644
|
||||||
--- a/React/Views/RefreshControl/RCTRefreshControl.h
|
--- a/React/Views/RefreshControl/RCTRefreshControl.h
|
||||||
+++ b/React/Views/RefreshControl/RCTRefreshControl.h
|
+++ b/React/Views/RefreshControl/RCTRefreshControl.h
|
||||||
@@ -15,5 +15,8 @@
|
@@ -15,5 +15,6 @@
|
||||||
@property (nonatomic, copy) NSString *title;
|
@property (nonatomic, copy) NSString *title;
|
||||||
@property (nonatomic, copy) RCTDirectEventBlock onRefresh;
|
@property (nonatomic, copy) RCTDirectEventBlock onRefresh;
|
||||||
@property (nonatomic, weak) UIScrollView *scrollView;
|
@property (nonatomic, weak) UIScrollView *scrollView;
|
||||||
+@property (nonatomic, copy) UIColor *customTintColor;
|
+@property (nonatomic, copy) UIColor *customTintColor;
|
||||||
+
|
|
||||||
+- (void)forwarderBeginRefreshing;
|
|
||||||
|
|
||||||
@end
|
@end
|
||||||
diff --git a/React/Views/RefreshControl/RCTRefreshControl.m b/React/Views/RefreshControl/RCTRefreshControl.m
|
diff --git a/React/Views/RefreshControl/RCTRefreshControl.m b/React/Views/RefreshControl/RCTRefreshControl.m
|
||||||
index 53bfd04703502d5b8e932c47a528bb03cd79d330..ff1b1ed5e060bcf0d91528c6d3c2c5c8acf24967 100644
|
index 53bfd04703502d5b8e932c47a528bb03cd79d330..e2e0c9f4e5d1a3a3b178a7ec69aa63e3039b6dec 100644
|
||||||
--- a/React/Views/RefreshControl/RCTRefreshControl.m
|
--- a/React/Views/RefreshControl/RCTRefreshControl.m
|
||||||
+++ b/React/Views/RefreshControl/RCTRefreshControl.m
|
+++ b/React/Views/RefreshControl/RCTRefreshControl.m
|
||||||
@@ -23,6 +23,7 @@ @implementation RCTRefreshControl {
|
@@ -23,6 +23,7 @@ @implementation RCTRefreshControl {
|
||||||
@@ -139,7 +124,7 @@ index 53bfd04703502d5b8e932c47a528bb03cd79d330..ff1b1ed5e060bcf0d91528c6d3c2c5c8
|
|||||||
- (void)didMoveToWindow
|
- (void)didMoveToWindow
|
||||||
{
|
{
|
||||||
[super didMoveToWindow];
|
[super didMoveToWindow];
|
||||||
@@ -221,4 +228,50 @@ - (void)refreshControlValueChanged
|
@@ -221,4 +228,16 @@ - (void)refreshControlValueChanged
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -154,40 +139,6 @@ index 53bfd04703502d5b8e932c47a528bb03cd79d330..ff1b1ed5e060bcf0d91528c6d3c2c5c8
|
|||||||
+ [super setTintColor:tintColor];
|
+ [super setTintColor:tintColor];
|
||||||
+ }
|
+ }
|
||||||
+}
|
+}
|
||||||
+
|
|
||||||
+// This method is used by Bluesky's ExpoScrollForwarder. This allows other React Native
|
|
||||||
+// libraries to perform a refresh of a scrollview and access the refresh control's onRefresh
|
|
||||||
+// function.
|
|
||||||
+- (void)forwarderBeginRefreshing
|
|
||||||
+{
|
|
||||||
+ _refreshingProgrammatically = NO;
|
|
||||||
+
|
|
||||||
+ [self sizeToFit];
|
|
||||||
+
|
|
||||||
+ if (!self.scrollView) {
|
|
||||||
+ return;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ UIScrollView *scrollView = (UIScrollView *)self.scrollView;
|
|
||||||
+
|
|
||||||
+ [UIView animateWithDuration:0.3
|
|
||||||
+ delay:0
|
|
||||||
+ options:UIViewAnimationOptionBeginFromCurrentState
|
|
||||||
+ animations:^(void) {
|
|
||||||
+ // Whenever we call this method, the scrollview will always be at a position of
|
|
||||||
+ // -130 or less. Scrolling back to -65 simulates the default behavior of RCTRefreshControl
|
|
||||||
+ [scrollView setContentOffset:CGPointMake(0, -65)];
|
|
||||||
+ }
|
|
||||||
+ completion:^(__unused BOOL finished) {
|
|
||||||
+ [super beginRefreshing];
|
|
||||||
+ [self setCurrentRefreshingState:super.refreshing];
|
|
||||||
+
|
|
||||||
+ if (self->_onRefresh) {
|
|
||||||
+ self->_onRefresh(nil);
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
+ ];
|
|
||||||
+}
|
|
||||||
+
|
+
|
||||||
@end
|
@end
|
||||||
diff --git a/React/Views/RefreshControl/RCTRefreshControlManager.m b/React/Views/RefreshControl/RCTRefreshControlManager.m
|
diff --git a/React/Views/RefreshControl/RCTRefreshControlManager.m b/React/Views/RefreshControl/RCTRefreshControlManager.m
|
||||||
|
|||||||
@@ -6,12 +6,6 @@ Patching `RCTRefreshControl.mm` temporarily to play an impact haptic on refresh
|
|||||||
17.4, there has been a regression somewhere causing haptics to not play on iOS on refresh. Should monitor for an update
|
17.4, there has been a regression somewhere causing haptics to not play on iOS on refresh. Should monitor for an update
|
||||||
in the RN repo: https://github.com/facebook/react-native/issues/43388
|
in the RN repo: https://github.com/facebook/react-native/issues/43388
|
||||||
|
|
||||||
## RefreshControl Path - ScrollForwarder
|
|
||||||
|
|
||||||
Patching `RCTRefreshControl.m` and `RCTRefreshControl.h` to add a new `forwarderBeginRefreshing` method to the class.
|
|
||||||
This method is used by `ExpoScrollForwarder` to initiate a refresh of the underlying `UIScrollView` from inside that
|
|
||||||
module.
|
|
||||||
|
|
||||||
## RCTPullToRefreshViewComponentView.mm Patch - RefreshControl initial props dropped on New Arch
|
## RCTPullToRefreshViewComponentView.mm Patch - RefreshControl initial props dropped on New Arch
|
||||||
|
|
||||||
**TODO: Remove after bumping React Native to 0.82+** (fixed upstream by facebook/react-native#52615, #52584
|
**TODO: Remove after bumping React Native to 0.82+** (fixed upstream by facebook/react-native#52615, #52584
|
||||||
|
|||||||
Generated
+367
-367
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user