diff options
author | Samuel Newman <mozzius@protonmail.com> | 2024-06-11 20:50:56 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-06-11 12:50:56 -0700 |
commit | 3d4b390a8a9c4a7c52354a0c7bd4bc0a8e12f9f8 (patch) | |
tree | 3ab59acd7cda6b1447df45d6e1518069fca985bb /src/components/KeyboardControllerPadding.android.tsx | |
parent | aca0fa23ec72d66c7de44c5079dae188221f0378 (diff) | |
download | voidsky-3d4b390a8a9c4a7c52354a0c7bd4bc0a8e12f9f8.tar.zst |
Only enable keyboard controller when necessary (#4483)
* Only enable keyboard controller when necessary * make it screen only * rm keyboard padding * rm keyboardpadding file * revert using keyboard controller in composer * remove styles.outer (unnecessary for revert) * continue to use keyboard padding in the report dialog for dms --------- Co-authored-by: Hailey <me@haileyok.com>
Diffstat (limited to 'src/components/KeyboardControllerPadding.android.tsx')
-rw-r--r-- | src/components/KeyboardControllerPadding.android.tsx | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/src/components/KeyboardControllerPadding.android.tsx b/src/components/KeyboardControllerPadding.android.tsx new file mode 100644 index 000000000..92ef1b0b0 --- /dev/null +++ b/src/components/KeyboardControllerPadding.android.tsx @@ -0,0 +1,31 @@ +import React from 'react' +import {useKeyboardHandler} from 'react-native-keyboard-controller' +import Animated, { + useAnimatedStyle, + useSharedValue, +} from 'react-native-reanimated' + +export function KeyboardControllerPadding({maxHeight}: {maxHeight?: number}) { + const keyboardHeight = useSharedValue(0) + + useKeyboardHandler( + { + onMove: e => { + 'worklet' + + if (maxHeight && e.height > maxHeight) { + keyboardHeight.value = maxHeight + } else { + keyboardHeight.value = e.height + } + }, + }, + [maxHeight], + ) + + const animatedStyle = useAnimatedStyle(() => ({ + height: keyboardHeight.value, + })) + + return <Animated.View style={animatedStyle} /> +} |