diff --git a/src/components/settings/__tests__/keyboard-persist-taps.test.ts b/src/components/settings/__tests__/keyboard-persist-taps.test.ts index 103db3bf..a2c695ad 100644 --- a/src/components/settings/__tests__/keyboard-persist-taps.test.ts +++ b/src/components/settings/__tests__/keyboard-persist-taps.test.ts @@ -26,6 +26,8 @@ const GRIDS = new Set(['MonthScrollView.tsx', 'TimeGridScrollView.tsx', 'WeekVie const files = [ path.join(SRC, 'screens', 'SettingsScreen.tsx'), path.join(SRC, 'screens', 'FilesScreen.tsx'), + // The reader's page pager sits around the quick reply box. + path.join(SRC, 'screens', 'EmailThreadScreen.tsx'), ...walk(path.join(SRC, 'components', 'settings')), ...walk(path.join(SRC, 'components', 'calendar')).filter((f) => !GRIDS.has(path.basename(f))), ...walk(path.join(SRC, 'components', 'files')), diff --git a/src/screens/EmailThreadScreen.tsx b/src/screens/EmailThreadScreen.tsx index 3aa9d2b9..2bee6f76 100644 --- a/src/screens/EmailThreadScreen.tsx +++ b/src/screens/EmailThreadScreen.tsx @@ -835,6 +835,8 @@ function EmailViewer({ route, navigation, embedded = false, onActiveChange }: Pr keyExtractor={(item) => item.id} horizontal pagingEnabled + // Else the first tap on the quick reply's Send only closes the keyboard. + keyboardShouldPersistTaps="handled" showsHorizontalScrollIndicator={false} initialScrollIndex={initialIndexRef.current} getItemLayout={(_, index) => ({ length: pageWidth, offset: pageWidth * index, index })} @@ -1467,7 +1469,7 @@ function MoreMenuSheet({ - + {canArchive && ( }