Calculate correct keyboard offset in composer (#4500)
* calculate correct keyboard offset * give viewHeight a default value * much simpler approach
This commit is contained in:
		
							parent
							
								
									498e46ae4e
								
							
						
					
					
						commit
						d20c59e19d
					
				
					 1 changed files with 17 additions and 2 deletions
				
			
		| 
						 | 
				
			
			@ -415,12 +415,14 @@ export const ComposePost = observer(function ComposePost({
 | 
			
		|||
    bottomBarAnimatedStyle,
 | 
			
		||||
  } = useAnimatedBorders()
 | 
			
		||||
 | 
			
		||||
  const keyboardVerticalOffset = useKeyboardVerticalOffset()
 | 
			
		||||
 | 
			
		||||
  return (
 | 
			
		||||
    <KeyboardAvoidingView
 | 
			
		||||
      testID="composePostView"
 | 
			
		||||
      behavior={isIOS ? 'padding' : 'height'}
 | 
			
		||||
      keyboardVerticalOffset={isIOS ? 70 : 0}
 | 
			
		||||
      style={[a.flex_1]}>
 | 
			
		||||
      keyboardVerticalOffset={keyboardVerticalOffset}
 | 
			
		||||
      style={a.flex_1}>
 | 
			
		||||
      <View style={[a.flex_1, viewStyles]} aria-modal accessibilityViewIsModal>
 | 
			
		||||
        <Animated.View style={topBarAnimatedStyle}>
 | 
			
		||||
          <View style={styles.topbarInner}>
 | 
			
		||||
| 
						 | 
				
			
			@ -741,6 +743,19 @@ function useAnimatedBorders() {
 | 
			
		|||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function useKeyboardVerticalOffset() {
 | 
			
		||||
  const {top} = useSafeAreaInsets()
 | 
			
		||||
 | 
			
		||||
  // Android etc
 | 
			
		||||
  if (!isIOS) return 0
 | 
			
		||||
 | 
			
		||||
  // iPhone SE
 | 
			
		||||
  if (top === 20) return 40
 | 
			
		||||
 | 
			
		||||
  // all other iPhones
 | 
			
		||||
  return top + 10
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
const styles = StyleSheet.create({
 | 
			
		||||
  topbarInner: {
 | 
			
		||||
    flexDirection: 'row',
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue