Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
fix: dispatch ContentSizeChange event on Fabric on iOS (#35816)
Summary: On Fabric, `onContentSizeChange` of `TextInput` component was never fired on `iOS`, since the logic dispatching it was implemented in `RCTBaseTextInputShadowView` on Paper: https://github.com/facebook/react-native/blob/0f8dc067ac079f7b14696cfcafa37e3ec19a0409/Libraries/Text/TextInput/RCTBaseTextInputShadowView.m#L105. This class is not used on Fabric, therefore the event was never dispatched. On Paper, it was dispatched in `dirtyLayout` method, so I added dispatching of this event based on the change of content size in `layoutSubviews` method, since this method seems the closest one on Fabric. I am not sure if it is the best place for it though. ## Changelog <!-- Help reviewers and the release process by writing your own changelog entry. Pick one each for the category and type tags: For more details, see: https://reactnative.dev/contributing/changelogs-in-pull-requests --> [IOS] [ADDED] - dispatch `onContentSizeChange` event on Fabric. Pull Request resolved: #35816 Test Plan: Try to use `onContentSizeChange` callback in `TextInput` component: ```tsx import React from 'react'; import {TextInput, SafeAreaView} from 'react-native'; const App = () => { return ( <SafeAreaView style={{flex: 1, backgroundColor: 'red'}}> <TextInput multiline={true} placeholder="type here" onContentSizeChange={e => console.log(e)} /> </SafeAreaView> ); }; export default App; ``` Reviewed By: christophpurrer Differential Revision: D42499974 Pulled By: sammy-SC fbshipit-source-id: 3e010ff096cf91cb3e7b87ed2753e9d0e7be9650
- Loading branch information