Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Make ScrollView sticky headers work w/o dispatching RCTEventEmitter.r…
…eceiveEvent Summary: # Context ScrollView sticky headers rely on this bit of code to work: ``` AnimatedImplementation.attachNativeEvent( this._scrollViewRef, 'onScroll', [{nativeEvent: {contentOffset: {y: this._scrollAnimatedValue}}}], ); ``` What this code means: When the ScrollView host component receives the "onScroll" event, assign event.nativeEvent.contentOffSet.y to the this._scrollAnimatedValue AnimatedValue. How this subscription mechanism is set up: NativeAnimatedTurboModule subscribes to events dispatched by RCTEventDispatcher sendEvent. Then, whenever RCTEventEmitter sendEvent executes, NativeAnimatedTurboModule also updates the AnimatedValue for that event. # Problem Previously, in bridgeless, we started dispatching RCTScrollView via the RCTEventDispatcher sendEvent to update the AnimatedValue for ScrollView. This meant that we started dispatching the onScroll event to JavaScript via RCTEventEmitter.receiveEvent JSModule, which isn't supported in the Fabric renderer. With this diff, we dialed back that solution. Instead of (1) notifying NativeAnimatedTurboModule and (2) sending the onScroll event to JavaScript, we're only doing (1) (i.e: notifying NativeAnimatedTurboModule). Changelog: [Internal] Reviewed By: fkgozali Differential Revision: D37257719 fbshipit-source-id: 7dea3cf8b9ae78f6b0fd40414b8f224d43367a5a
- Loading branch information