From 2a055ddfe21e4d347aa4c29812368293ee0ffe66 Mon Sep 17 00:00:00 2001 From: Linus Rath <139418639+rathlinus@users.noreply.github.com> Date: Thu, 24 Sep 2026 20:05:22 +0200 Subject: [PATCH] fix: keep a star set while the mark-as-read delay runs --- src/screens/EmailThreadScreen.tsx | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/screens/EmailThreadScreen.tsx b/src/screens/EmailThreadScreen.tsx index bbb2bfd0..139f1db6 100644 --- a/src/screens/EmailThreadScreen.tsx +++ b/src/screens/EmailThreadScreen.tsx @@ -332,7 +332,9 @@ function EmailViewer({ route, navigation }: Props) { const scheduleMarkRead = React.useCallback((target: Email): (() => void) => { if (target.keywords?.$seen || markAsReadDelay === -1) return () => undefined; const apply = () => { - updateLocalKeywords(target.id, { ...target.keywords, $seen: true }); + // The keywords as they are now: a star or tag set during the delay stays. + const current = peekDetail(target.id, ownerAccountId) ?? target; + updateLocalKeywords(target.id, { ...current.keywords, $seen: true }); void markSeen(target.id); }; if (markAsReadDelay > 0) { @@ -341,7 +343,7 @@ function EmailViewer({ route, navigation }: Props) { } apply(); return () => undefined; - }, [markAsReadDelay, markSeen, updateLocalKeywords]); + }, [markAsReadDelay, markSeen, updateLocalKeywords, ownerAccountId]); React.useEffect(() => { let cancelled = false;