From 736ea3f49d3500af1d41bb6ae54862acea40d056 Mon Sep 17 00:00:00 2001 From: Samuel Newman Date: Tue, 26 Nov 2024 15:57:21 +0000 Subject: Fix Android keyboard bug when opening a sheet (#6739) * reimplement KeyboardStickyView * fix missing arg --- src/screens/Messages/components/MessagesList.tsx | 24 ++++++++++++++---------- 1 file changed, 14 insertions(+), 10 deletions(-) (limited to 'src') diff --git a/src/screens/Messages/components/MessagesList.tsx b/src/screens/Messages/components/MessagesList.tsx index 5edea2411..ce189459e 100644 --- a/src/screens/Messages/components/MessagesList.tsx +++ b/src/screens/Messages/components/MessagesList.tsx @@ -1,10 +1,7 @@ import React, {useCallback, useRef} from 'react' import {LayoutChangeEvent, View} from 'react-native' -import { - KeyboardStickyView, - useKeyboardHandler, -} from 'react-native-keyboard-controller' -import { +import {useKeyboardHandler} from 'react-native-keyboard-controller' +import Animated, { runOnJS, scrollTo, useAnimatedRef, @@ -270,8 +267,12 @@ export function MessagesList({ scrollTo(flatListRef, 0, 1e7, false) } }, - onEnd: () => { + onEnd: e => { 'worklet' + keyboardHeight.set(e.height) + if (e.height > bottomOffset) { + scrollTo(flatListRef, 0, 1e7, false) + } keyboardIsOpening.set(false) }, }, @@ -279,8 +280,11 @@ export function MessagesList({ ) const animatedListStyle = useAnimatedStyle(() => ({ - marginBottom: - keyboardHeight.get() > bottomOffset ? keyboardHeight.get() : bottomOffset, + marginBottom: Math.max(keyboardHeight.get(), bottomOffset), + })) + + const animatedStickyViewStyle = useAnimatedStyle(() => ({ + transform: [{translateY: -Math.max(keyboardHeight.get(), bottomOffset)}], })) // -- Message sending @@ -422,7 +426,7 @@ export function MessagesList({ } /> - + {convoState.status === ConvoStatus.Disabled ? ( ) : blocked ? ( @@ -441,7 +445,7 @@ export function MessagesList({ )} - + {isWeb && (