Description
PR #3123 (issue #3116) fixed the deny-reason sheet being fully hidden behind the Android IME by wrapping it in a KeyboardAvoidingView. The review confirmed two more input-bearing bottom sheets have the identical defect — no KeyboardAvoidingView, bottom-anchored, so focusing their text fields on Android raises the keyboard over the sheet:
apps/mobile/src/screens/chat/components/ChangePasswordSheet.tsx
apps/mobile/src/screens/search/SearchSheet.tsx
Intentionally left out of #3123 to keep that diff single-purpose.
Proposed Fix
Apply the pattern from DenyReasonSheet.tsx in #3123: KeyboardAvoidingView with behavior={Platform.OS === 'ios' ? 'padding' : 'height'} around the sheet content inside the Modal. Note from #3123's review: if on-device testing shows a residual gap on Android, behavior: undefined on Android (letting adjustResize do the lift alone) is the known fallback.
Reported By
Review findings on #3123; follow-up to #3116
Description
PR #3123 (issue #3116) fixed the deny-reason sheet being fully hidden behind the Android IME by wrapping it in a
KeyboardAvoidingView. The review confirmed two more input-bearing bottom sheets have the identical defect — noKeyboardAvoidingView, bottom-anchored, so focusing their text fields on Android raises the keyboard over the sheet:apps/mobile/src/screens/chat/components/ChangePasswordSheet.tsxapps/mobile/src/screens/search/SearchSheet.tsxIntentionally left out of #3123 to keep that diff single-purpose.
Proposed Fix
Apply the pattern from
DenyReasonSheet.tsxin #3123:KeyboardAvoidingViewwithbehavior={Platform.OS === 'ios' ? 'padding' : 'height'}around the sheet content inside the Modal. Note from #3123's review: if on-device testing shows a residual gap on Android,behavior: undefinedon Android (lettingadjustResizedo the lift alone) is the known fallback.Reported By
Review findings on #3123; follow-up to #3116