Compare commits

..
3 Commits
4 changed files with 17 additions and 15 deletions
+1 -1
View File
@@ -1 +1 @@
0.1.73
0.1.75
+2 -2
View File
@@ -1,12 +1,12 @@
{
"name": "bulwark-mobile",
"version": "0.1.73",
"version": "0.1.75",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "bulwark-mobile",
"version": "0.1.73",
"version": "0.1.75",
"license": "AGPL-3.0-only",
"dependencies": {
"@react-native-async-storage/async-storage": "2.2.0",
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "bulwark-mobile",
"version": "0.1.73",
"version": "0.1.75",
"license": "AGPL-3.0-only",
"main": "index.ts",
"scripts": {
+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}