mirror of
https://github.com/facebook/react-native.git
synced 2025-11-01 09:14:26 +00:00
Implement onScrollToTop event for Fabric (#42128)
Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/42128 Scroll view was not emitting the `onScrollToTop` event when the user tapped on the status bar. This change fixes this by adding the event to the C++ Event Emitter and by invoking it into the `RCTScrollViewComponentView` ## Changelog [iOS][Added] - Add onScrollToTop event in Fabric Reviewed By: sammy-SC Differential Revision: D52509919 fbshipit-source-id: 7b72c927823fa971be99c4da4b0287d4e23a02b6
This commit is contained in:
committed by
Facebook GitHub Bot
parent
6cd1aaf3ae
commit
327df8a719
+1
@@ -472,6 +472,7 @@ static void RCTSendScrollEventForNativeAnimations_DEPRECATED(UIScrollView *scrol
|
||||
- (void)scrollViewDidScrollToTop:(UIScrollView *)scrollView
|
||||
{
|
||||
_isUserTriggeredScrolling = NO;
|
||||
static_cast<const ScrollViewEventEmitter &>(*_eventEmitter).onScrollToTop([self _scrollViewMetrics]);
|
||||
[self _updateStateWithContentOffset];
|
||||
}
|
||||
|
||||
|
||||
+8
@@ -64,6 +64,14 @@ void ScrollViewEventEmitter::onScroll(
|
||||
});
|
||||
}
|
||||
|
||||
void ScrollViewEventEmitter::onScrollToTop(
|
||||
const ScrollViewMetrics& scrollViewMetrics) const {
|
||||
dispatchUniqueEvent(
|
||||
"scrollToTop", [scrollViewMetrics](jsi::Runtime& runtime) {
|
||||
return scrollViewMetricsPayload(runtime, scrollViewMetrics);
|
||||
});
|
||||
}
|
||||
|
||||
void ScrollViewEventEmitter::onScrollBeginDrag(
|
||||
const ScrollViewMetrics& scrollViewMetrics) const {
|
||||
dispatchScrollViewEvent("scrollBeginDrag", scrollViewMetrics);
|
||||
|
||||
+1
@@ -33,6 +33,7 @@ class ScrollViewEventEmitter : public ViewEventEmitter {
|
||||
void onScrollEndDrag(const ScrollViewMetrics& scrollViewMetrics) const;
|
||||
void onMomentumScrollBegin(const ScrollViewMetrics& scrollViewMetrics) const;
|
||||
void onMomentumScrollEnd(const ScrollViewMetrics& scrollViewMetrics) const;
|
||||
void onScrollToTop(const ScrollViewMetrics& scrollViewMetrics) const;
|
||||
|
||||
private:
|
||||
void dispatchScrollViewEvent(
|
||||
|
||||
Reference in New Issue
Block a user