diff options
author | Hailey <me@haileyok.com> | 2024-05-23 10:01:31 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-05-23 10:01:31 -0700 |
commit | 5217876f241a991e55d789cd5faa8d8ab1890d1b (patch) | |
tree | 274a75717f646acb3a304bdac1710d7b5ea0e579 /src/components/KeyboardPadding.android.tsx | |
parent | 3d1ed04a70aff9c08b713392ac0a4d3856ae16e9 (diff) | |
download | voidsky-5217876f241a991e55d789cd5faa8d8ab1890d1b.tar.zst |
Add padding to dialogs when keyboard is open on Android (#4182)
* add keyboard padding to android dialogs * missing `keyboardDismissMode` for `ScrollableInner` * add to `MutedWords` * add to `LabelsOnMe`
Diffstat (limited to 'src/components/KeyboardPadding.android.tsx')
-rw-r--r-- | src/components/KeyboardPadding.android.tsx | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/src/components/KeyboardPadding.android.tsx b/src/components/KeyboardPadding.android.tsx new file mode 100644 index 000000000..40dec3001 --- /dev/null +++ b/src/components/KeyboardPadding.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 KeyboardPadding({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} /> +} |