From 4591bb2909b49d7d663bfd7bdc2a8eb68ceb4b9d Mon Sep 17 00:00:00 2001 From: Nick Lefever Date: Thu, 8 May 2025 09:37:26 -0700 Subject: [PATCH] Add missing ScrollView props to ScrollProps (#51167) Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/51167 Adding the ScrollView properties that are android specific to the common ScrollView props so that they can be diffed in a getDiffProps implementation. Changelog: [Internal] Reviewed By: sammy-SC Differential Revision: D74327335 fbshipit-source-id: 8e5683d4bf7fe0f6d54d4b97f535731721c60292 --- .../components/scrollview/ScrollViewProps.cpp | 34 +++++++++++++++++-- .../components/scrollview/ScrollViewProps.h | 3 ++ 2 files changed, 35 insertions(+), 2 deletions(-) diff --git a/packages/react-native/ReactCommon/react/renderer/components/scrollview/ScrollViewProps.cpp b/packages/react-native/ReactCommon/react/renderer/components/scrollview/ScrollViewProps.cpp index 4536d914592..ca8b33fb240 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/scrollview/ScrollViewProps.cpp +++ b/packages/react-native/ReactCommon/react/renderer/components/scrollview/ScrollViewProps.cpp @@ -371,7 +371,27 @@ ScrollViewProps::ScrollViewProps( rawProps, "isInvertedVirtualizedList", sourceProps.isInvertedVirtualizedList, - {})) {} + {})), + sendMomentumEvents( + ReactNativeFeatureFlags::enableCppPropsIteratorSetter() + ? sourceProps.sendMomentumEvents + : convertRawProp( + context, + rawProps, + "sendMomentumEvents", + sourceProps.sendMomentumEvents, + true)), + nestedScrollEnabled( + ReactNativeFeatureFlags::enableCppPropsIteratorSetter() + ? sourceProps.nestedScrollEnabled + : convertRawProp( + context, + rawProps, + "nestedScrollEnabled", + sourceProps.nestedScrollEnabled, + true)) + +{} void ScrollViewProps::setProp( const PropsParserContext& context, @@ -424,6 +444,8 @@ void ScrollViewProps::setProp( RAW_SET_PROP_SWITCH_CASE_BASIC(contentInsetAdjustmentBehavior); RAW_SET_PROP_SWITCH_CASE_BASIC(scrollToOverflowEnabled); RAW_SET_PROP_SWITCH_CASE_BASIC(isInvertedVirtualizedList); + RAW_SET_PROP_SWITCH_CASE_BASIC(sendMomentumEvents); + RAW_SET_PROP_SWITCH_CASE_BASIC(nestedScrollEnabled); } } @@ -558,7 +580,15 @@ SharedDebugStringConvertibleList ScrollViewProps::getDebugProps() const { debugStringConvertibleItem( "isInvertedVirtualizedList", snapToEnd, - defaultScrollViewProps.isInvertedVirtualizedList)}; + defaultScrollViewProps.isInvertedVirtualizedList), + debugStringConvertibleItem( + "sendMomentumEvents", + sendMomentumEvents, + defaultScrollViewProps.sendMomentumEvents), + debugStringConvertibleItem( + "nestedScrollEnabled", + nestedScrollEnabled, + defaultScrollViewProps.nestedScrollEnabled)}; } #endif diff --git a/packages/react-native/ReactCommon/react/renderer/components/scrollview/ScrollViewProps.h b/packages/react-native/ReactCommon/react/renderer/components/scrollview/ScrollViewProps.h index 8516d4ab0dc..4bf8a991ce6 100644 --- a/packages/react-native/ReactCommon/react/renderer/components/scrollview/ScrollViewProps.h +++ b/packages/react-native/ReactCommon/react/renderer/components/scrollview/ScrollViewProps.h @@ -74,6 +74,9 @@ class ScrollViewProps final : public ViewProps { bool scrollToOverflowEnabled{false}; bool isInvertedVirtualizedList{false}; + bool sendMomentumEvents{}; + bool nestedScrollEnabled{}; + #pragma mark - DebugStringConvertible #if RN_DEBUG_STRING_CONVERTIBLE