fix: stop the app crashing when a notification opens a mail

This commit is contained in:
Linus Rath
2026-10-13 18:07:46 +02:00
parent 61690603a2
commit ef1d4bc387
+13 -11
View File
@@ -1022,6 +1022,19 @@ function EmailPane({
React.useEffect(() => () => { readTimers.forEach((cancel) => cancel()); readTimers.clear(); }, [readTimers]);
// Keeps the quick reply in view while the keyboard opens. Above the
// skeleton's early return: a page opened by id alone (a notification)
// renders the skeleton first, and a hook after it crashed the app.
const scrollRef = React.useRef<ScrollView>(null);
const isInputFocused = React.useRef(false);
React.useEffect(() => {
if (kbObstruction > 0 && isInputFocused.current) {
setTimeout(() => {
scrollRef.current?.scrollToEnd({ animated: true });
}, 50);
}
}, [kbObstruction]);
const toggleCard = (mid: string) => {
setExpanded((prev) => {
const next = new Set(prev ?? []);
@@ -1069,9 +1082,6 @@ function EmailPane({
onZoomChange(z);
};
const scrollRef = React.useRef<ScrollView>(null);
const isInputFocused = React.useRef(false);
const bottomPadding = kbObstruction > 0
? kbObstruction + spacing.md
: bottomBarHeight + spacing.lg;
@@ -1087,14 +1097,6 @@ function EmailPane({
isInputFocused.current = false;
};
React.useEffect(() => {
if (kbObstruction > 0 && isInputFocused.current) {
setTimeout(() => {
scrollRef.current?.scrollToEnd({ animated: true });
}, 50);
}
}, [kbObstruction]);
return (
<ScrollView
ref={scrollRef}