Skip to content

Commit df7508d

Browse files
Nick Lefevermeta-codesync[bot]
authored andcommitted
Add overScrollMode prop to scroll view (#54202)
Summary: Pull Request resolved: #54202 Adding the `overScrollMode` property to the Android scroll view props. Changelog: [Internal] Differential Revision: D85019462 fbshipit-source-id: 2809743a89e80ad851fce4f90da6a8f7a67e1501
1 parent d9ea1b2 commit df7508d

File tree

2 files changed

+21
-4
lines changed

2 files changed

+21
-4
lines changed

packages/react-native/ReactCommon/react/renderer/components/scrollview/platform/android/react/renderer/components/scrollview/HostPlatformScrollViewProps.cpp

Lines changed: 20 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -47,9 +47,16 @@ HostPlatformScrollViewProps::HostPlatformScrollViewProps(
4747
rawProps,
4848
"fadingEdgeLength",
4949
sourceProps.fadingEdgeLength,
50-
nullptr))
51-
52-
{}
50+
nullptr)),
51+
overScrollMode(
52+
ReactNativeFeatureFlags::enableCppPropsIteratorSetter()
53+
? sourceProps.overScrollMode
54+
: convertRawProp(
55+
context,
56+
rawProps,
57+
"overScrollMode",
58+
sourceProps.overScrollMode,
59+
"auto")) {}
5360

5461
void HostPlatformScrollViewProps::setProp(
5562
const PropsParserContext& context,
@@ -67,6 +74,7 @@ void HostPlatformScrollViewProps::setProp(
6774
RAW_SET_PROP_SWITCH_CASE_BASIC(sendMomentumEvents);
6875
RAW_SET_PROP_SWITCH_CASE_BASIC(nestedScrollEnabled);
6976
RAW_SET_PROP_SWITCH_CASE_BASIC(fadingEdgeLength);
77+
RAW_SET_PROP_SWITCH_CASE_BASIC(overScrollMode);
7078
}
7179
}
7280

@@ -86,7 +94,11 @@ SharedDebugStringConvertibleList HostPlatformScrollViewProps::getDebugProps()
8694
debugStringConvertibleItem(
8795
"nestedScrollEnabled",
8896
nestedScrollEnabled,
89-
defaultScrollViewProps.nestedScrollEnabled)};
97+
defaultScrollViewProps.nestedScrollEnabled),
98+
debugStringConvertibleItem(
99+
"overScrollMode",
100+
overScrollMode,
101+
defaultScrollViewProps.overScrollMode)};
90102
}
91103
#endif
92104

@@ -362,6 +374,10 @@ folly::dynamic HostPlatformScrollViewProps::getDiffProps(
362374
result["fadingEdgeLength"] = fadingEdgeLength;
363375
}
364376

377+
if (overScrollMode != oldProps->overScrollMode) {
378+
result["overScrollMode"] = overScrollMode;
379+
}
380+
365381
return result;
366382
}
367383

packages/react-native/ReactCommon/react/renderer/components/scrollview/platform/android/react/renderer/components/scrollview/HostPlatformScrollViewProps.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ class HostPlatformScrollViewProps : public BaseScrollViewProps {
3333
bool sendMomentumEvents{};
3434
bool nestedScrollEnabled{};
3535
folly::dynamic fadingEdgeLength{};
36+
std::string overScrollMode{"auto"};
3637

3738
#pragma mark - DebugStringConvertible
3839

0 commit comments

Comments
 (0)