UNPKG

react-native-keyboard-controller

Version:

Keyboard manager which works in identical way on both iOS and Android

72 lines (64 loc) 1.89 kB
import codegenNativeComponent from "react-native/Libraries/Utilities/codegenNativeComponent"; import type { HostComponent } from "react-native"; import type { ViewProps } from "react-native/Libraries/Components/View/ViewPropTypes"; import type { DirectEventHandler, Double, Int32, } from "react-native/Libraries/Types/CodegenTypes"; type KeyboardMoveEvent = Readonly<{ height: Double; progress: Double; duration: Int32; target: Int32; }>; type FocusedInputLayoutChangedEvent = Readonly<{ target: Int32; parentScrollViewTarget: Int32; layout: { x: Double; y: Double; width: Double; height: Double; absoluteX: Double; absoluteY: Double; }; }>; type FocusedInputTextChangedEvent = Readonly<{ text: string; }>; type FocusedInputSelectionChangedEvent = Readonly<{ target: Int32; selection: { start: { x: Double; y: Double; position: Int32; }; end: { x: Double; y: Double; position: Int32; }; }; }>; export interface NativeProps extends ViewProps { // props enabled?: boolean; statusBarTranslucent?: boolean; navigationBarTranslucent?: boolean; preserveEdgeToEdge?: boolean; // callbacks /// keyboard onKeyboardMoveStart?: DirectEventHandler<KeyboardMoveEvent>; onKeyboardMove?: DirectEventHandler<KeyboardMoveEvent>; onKeyboardMoveEnd?: DirectEventHandler<KeyboardMoveEvent>; onKeyboardMoveInteractive?: DirectEventHandler<KeyboardMoveEvent>; /// focused input onFocusedInputLayoutChanged?: DirectEventHandler<FocusedInputLayoutChangedEvent>; onFocusedInputTextChanged?: DirectEventHandler<FocusedInputTextChangedEvent>; onFocusedInputSelectionChanged?: DirectEventHandler<FocusedInputSelectionChangedEvent>; } export default codegenNativeComponent<NativeProps>("KeyboardControllerView", { interfaceOnly: true, }) as HostComponent<NativeProps>;