-
-
Notifications
You must be signed in to change notification settings - Fork 2.2k
Open
Description
Current behaviour
I have a search bar into a menu tag, clicking on it makes the full menu modal disappear.
This is an issue happening on 5.13.1.
On the version5.12.5 we had a similar issue where the dismiss of the modal was fired after clicking on the SearchBar, but we had added a flag to check if the search bar was focused or not and that made the job.
Expected behavior
Clicking on the search bar shall not fire onBlur and not hide the modal at all
How to reproduce?
This is the relevant part of the code, not the full file
const [showCountryPicker, setShowCountryPicker] = useState(false)
const [isSearchFocused, setIsSearchFocused] = useState(false)
console.log('showCountryPicker', showCountryPicker)
return (
<Menu
visible={showCountryPicker}
anchorPosition={'bottom'}
style={{
flex: 1,
// width: windowWidth - 2 * theme.spacing(4),
}}
onDismiss={() => {
console.log('dismiss', { isSearchFocused, showCountryPicker })
// Only dismiss if search isn't focused
if (!isSearchFocused) {
setShowCountryPicker(false)
}
}}
anchor={
<TextInput
disabled={disabled}
style={{ top: -2 }}
value={value}
autoComplete="tel-country-code"
editable={false}
onTouchStart={
!disabled
? () => {
console.log('touchStart')
setShowCountryPicker(true)
}
: undefined
}
right={
<TextInput.Icon
icon={showCountryPicker ? 'menu-up' : 'menu-down'}
disabled={disabled}
onPress={() => {
console.log('onPress')
setShowCountryPicker(!showCountryPicker)
}}
/>
}
dense
mode="outlined"
/>
}>
<Searchbar
placeholder={t('country-code-placeholder')}
onChangeText={setSearchQuery}
value={searchQuery}
console.log('onBlur')
setIsSearchFocused(false)
}}
onFocus={() => {
console.log('onFocus')
setIsSearchFocused(true)
}}
/>
</Menu>
)
Preview
What have you tried so far?
Trying to prevent the events on blur.
Your Environment
I can reproduce this in my local machine and in the staging server
| software | version |
|---|---|
| react-native-web | ~0.19.13 |
| react-native | 0.73.6 |
| react-native-paper | 5.13.1 |
| node | v21.6.2 |
| pnpm | 8.11.0 |
| expo sdk | ~50.0.21 |