From b9c3f7940127c50d71dc3de281e06e8b52ee4cfa Mon Sep 17 00:00:00 2001 From: Linus Rath <139418639+rathlinus@users.noreply.github.com> Date: Mon, 2 Nov 2026 23:40:07 +0100 Subject: [PATCH] fix: send a quick reply with the first tap while the keyboard is open --- .../settings/__tests__/keyboard-persist-taps.test.ts | 2 ++ src/screens/EmailThreadScreen.tsx | 4 +++- 2 files changed, 5 insertions(+), 1 deletion(-) 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 && ( }