When scrolling Plex Amp with a mouse that has a scroll wheel (not a trackpad or Apple magic mouse), you see a very exaggerated scroll bounce when you reach the top or bottom. Here’s a video showing the issue.
This is very jarring! Scrolling with this kind of mouse should have no bounce at all, which is how it works everywhere else on the system.
@elan I don’t think a setting is appropriate here. The issue is that ordinarily native macOS scrollable views automatically know when to bounce based off of what kind of pointing device is being used. Since these scrollable areas are non-native, I think the correct solution is to reimplement that behavior. They should bounce if the user is using a trackpad or an Apple magic mouse, and what you guys have now looks and feels good in that situation. It just needs to detect when a user is using a regular mouse and suppress the bounce in that circumstance.
I’m not all that familiar with React Native apps so I don’t know what kind of access it gives you to the underlying scroll events from the system, but if you can access the native scroll events you can determine if they’re coming from a regular mouse vs. a device capable of pixel-precision scrolling like a trackpad by checking their kCGScrollWheelEventIsContinuous field. Perhaps the React scroll events have a similar flag that can distinguish between the two different types of scrolling.
Forgive me if my unfamiliarity with React Native is coming through since I’m not entirely sure what aspects of the underlying browser environment are available to you there, but perhaps you can determine whether scroll views should bounce by creating an event listener for WheelEvent and checking their deltaMode property? That ought to indicate whether the user is scrolling by pixel or by line, which should correspond with trackpads and regular mice respectively.