Dismiss keyboard when opening selectors

This commit is contained in:
Mohamed Boudra
2026-06-03 15:27:51 +07:00
parent b365d818f3
commit b4fd965c43
2 changed files with 8 additions and 0 deletions
@@ -17,6 +17,7 @@ import {
ScrollView, ScrollView,
Platform, Platform,
StatusBar, StatusBar,
Keyboard,
useWindowDimensions, useWindowDimensions,
type LayoutChangeEvent, type LayoutChangeEvent,
type PressableStateCallbackType, type PressableStateCallbackType,
@@ -737,6 +738,9 @@ function applySetOpen(
onOpenChange: ((open: boolean) => void) | undefined, onOpenChange: ((open: boolean) => void) | undefined,
nextOpen: boolean, nextOpen: boolean,
) { ) {
if (nextOpen) {
Keyboard.dismiss();
}
if (!isControlled) { if (!isControlled) {
setInternalOpen(nextOpen); setInternalOpen(nextOpen);
} }
@@ -18,6 +18,7 @@ import {
Text, Text,
View, View,
Dimensions, Dimensions,
Keyboard,
Platform, Platform,
StatusBar, StatusBar,
type PressableProps, type PressableProps,
@@ -90,6 +91,9 @@ function useControllableOpenState({
const value = isControlled ? open : internalOpen; const value = isControlled ? open : internalOpen;
const setValue = useCallback( const setValue = useCallback(
(next: boolean) => { (next: boolean) => {
if (next) {
Keyboard.dismiss();
}
if (!isControlled) setInternalOpen(next); if (!isControlled) setInternalOpen(next);
onOpenChange?.(next); onOpenChange?.(next);
}, },