diff options
author | Hailey <me@haileyok.com> | 2024-05-28 18:15:35 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-05-29 02:15:35 +0100 |
commit | 888bec7b4fbe1b924d788333ec44c916fd3e8676 (patch) | |
tree | a301b8dd200c3252f925bca0bab242e9bad230c1 /patches/react-native+0.74.1.patch | |
parent | 5ceb440d4e46a69747316836626a6abcf7246ca1 (diff) | |
download | voidsky-888bec7b4fbe1b924d788333ec44c916fd3e8676.tar.zst |
Upgrade to Expo 51 and React Native 0.74 (#3980)
* upgrade packages * remove `expo-image-picker` patch * remove old expo-updates patch * rename rn patch * downgrade crop picker * bump `ExpoGifView` `SDWebImage` version * apply config changes * update build docs for apple silicon * update build docs for apple silicon * update expo-updates patch * add back patch readme * bump `expo-dev-client` * bump `babel-preset` * update `babel.config.js` * update `react-native-paste-input` patch * remove old ota updates hook * update types * update types * downgrade pager-view * update animated ref type * fix web-only type * update `react-native-bottom-sheet` `BottomSheetTextInput` * add `expo-application` to jest mocks * remove reanimated patch * update notifications patch * update reanimated path * fix import * update yarn.lock * use `ItemT` instead of `any` * expo bump * Revert logic change, fix types * Fix JSON file --------- Co-authored-by: Dan Abramov <dan.abramov@gmail.com>
Diffstat (limited to 'patches/react-native+0.74.1.patch')
-rw-r--r-- | patches/react-native+0.74.1.patch | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/patches/react-native+0.74.1.patch b/patches/react-native+0.74.1.patch new file mode 100644 index 000000000..db8b7da2d --- /dev/null +++ b/patches/react-native+0.74.1.patch @@ -0,0 +1,69 @@ +diff --git a/node_modules/react-native/React/Views/RefreshControl/RCTRefreshControl.h b/node_modules/react-native/React/Views/RefreshControl/RCTRefreshControl.h +index e9b330f..1ecdf0a 100644 +--- a/node_modules/react-native/React/Views/RefreshControl/RCTRefreshControl.h ++++ b/node_modules/react-native/React/Views/RefreshControl/RCTRefreshControl.h +@@ -16,4 +16,6 @@ + @property (nonatomic, copy) RCTDirectEventBlock onRefresh; + @property (nonatomic, weak) UIScrollView *scrollView; + ++- (void)forwarderBeginRefreshing; ++ + @end +diff --git a/node_modules/react-native/React/Views/RefreshControl/RCTRefreshControl.m b/node_modules/react-native/React/Views/RefreshControl/RCTRefreshControl.m +index b09e653..4c32b31 100644 +--- a/node_modules/react-native/React/Views/RefreshControl/RCTRefreshControl.m ++++ b/node_modules/react-native/React/Views/RefreshControl/RCTRefreshControl.m +@@ -198,9 +198,53 @@ - (void)refreshControlValueChanged + [self setCurrentRefreshingState:super.refreshing]; + _refreshingProgrammatically = NO; + ++ if (@available(iOS 17.4, *)) { ++ if (_currentRefreshingState) { ++ UIImpactFeedbackGenerator *feedbackGenerator = [[UIImpactFeedbackGenerator alloc] initWithStyle:UIImpactFeedbackStyleLight]; ++ [feedbackGenerator prepare]; ++ [feedbackGenerator impactOccurred]; ++ } ++ } ++ + if (_onRefresh) { + _onRefresh(nil); + } + } + ++/* ++ 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 |