UNPKG

react-native-keyboard-controller

Version:

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

54 lines 1.65 kB
import { useEffect, useLayoutEffect } from "react"; import { AndroidSoftInputModes } from "../constants"; import { useKeyboardContext } from "../context"; import { KeyboardController } from "../module"; export const useResizeMode = () => { useEffect(() => { KeyboardController.setInputMode(AndroidSoftInputModes.SOFT_INPUT_ADJUST_RESIZE); return () => KeyboardController.setDefaultMode(); }, []); }; export const useKeyboardAnimation = () => { useResizeMode(); const context = useKeyboardContext(); return context.animated; }; export const useReanimatedKeyboardAnimation = () => { useResizeMode(); const context = useKeyboardContext(); return context.reanimated; }; export function useGenericKeyboardHandler(handler, deps) { const context = useKeyboardContext(); useLayoutEffect(() => { const cleanup = context.setKeyboardHandlers(handler); return () => cleanup(); }, deps); } export function useKeyboardHandler(handler, deps) { useResizeMode(); useGenericKeyboardHandler(handler, deps); } export function useKeyboardController() { const context = useKeyboardContext(); return { setEnabled: context.setEnabled, enabled: context.enabled }; } export function useReanimatedFocusedInput() { const context = useKeyboardContext(); return { input: context.layout }; } export function useFocusedInputHandler(handler, deps) { const context = useKeyboardContext(); useLayoutEffect(() => { const cleanup = context.setInputHandlers(handler); return () => cleanup(); }, deps); } export * from "./useWindowDimensions"; export * from "./useKeyboardState"; //# sourceMappingURL=index.js.map