about summary refs log tree commit diff
path: root/src/view/com/composer/KeyboardAccessory.tsx
blob: 983a87dae9c3ad3d2a8dd0da70b0621379900ba1 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
import React from 'react'
import {View} from 'react-native'
import {KeyboardStickyView} from 'react-native-keyboard-controller'
import {useSafeAreaInsets} from 'react-native-safe-area-context'

import {isWeb} from '#/platform/detection'
import {atoms as a, useTheme} from '#/alf'

export function KeyboardAccessory({children}: {children: React.ReactNode}) {
  const t = useTheme()
  const {bottom} = useSafeAreaInsets()

  const style = [
    a.flex_row,
    a.py_xs,
    a.pl_sm,
    a.pr_xl,
    a.align_center,
    a.border_t,
    t.atoms.border_contrast_medium,
    t.atoms.bg,
  ]

  // todo: when iPad support is added, it should also not use the KeyboardStickyView
  if (isWeb) {
    return <View style={style}>{children}</View>
  }

  return (
    <KeyboardStickyView offset={{closed: -bottom}} style={style}>
      {children}
    </KeyboardStickyView>
  )
}