Fix: Scroll to TextInput on picker opening
Problem
When the picker gets opened, the <ScrollView /> which contains the <RNPickerSelect /> isn't responding to the modal opening.
Since using the picker should feel like using keyboard, we need to have some logic to directly scroll to the location of the <TextInput /> in the containing <ScrollView />.
Solution
I added the code needed, to allow this kind of functionality. There are two props needed:
scrollViewRef: A ref to the containing<ScrollView />component, so we can manuall call.scrollTo()scrollViewContentOffsetY: the current scrolling offset, which can be retrieved by using theonScrollcallback on the<ScrollView />
(Lmk if you have a solution, that requires less props or is easier)
This is completely optional, so if these 2 props are not provided, the behaviour of this picker library won't change
Notices
Hope this PR brings some useful functionality.
this is cool - can you fix the conflicts?
@lfkwtz conflicts resolved 👍
@lfkwtz just found a reliable way to measure the actual modal height, without the need to hardcode it. Let me know what you think and if everything works for you 👍
looking good - able to close that coverage gap?
looking good - able to close that coverage gap?
Not sure how, if were not able to test this lib natively on iOS... Do you have an idea?
@lfkwtz do you think we can merge this? Absolutely no priority though..
@lfkwtz do you think we can merge this? Absolutely no priority though..
i currently do not have access to merge until all checks are passed. so we'll have to work through that first.
I'm gonna try to continue working on the tests if i get the chance any time soon...
looks like the team at lawnstarter is starting to work on this a bit more so maybe they will be able to help you get this in cc @alberto-mourao-lawnstarter
looks like the team at lawnstarter is starting to work on this a bit more so maybe they will be able to help you get this in cc @alberto-mourao-lawnstarter
ah awesome! Yea, if they could help me with fixing/setting up these tests, that would be great! thanks
gonna resolve merge conflicts soon