diff --git a/README.md b/README.md index 1b2ea981..b3ef87b6 100644 --- a/README.md +++ b/README.md @@ -173,6 +173,16 @@ console.log('layout: ', layout) ``` +### `useKeyboardRelease` + +```js +import {useKeyboardRelease} from '@react-native-community/hooks' + +const {onRelease, shouldSetResponse} = useKeyboardRelease() + + +``` + [version-badge]: https://img.shields.io/npm/v/@react-native-community/hooks.svg?style=flat-square [package]: https://www.npmjs.com/package/@react-native-community/hooks diff --git a/src/index.ts b/src/index.ts index dc4646ea..3e4ed519 100644 --- a/src/index.ts +++ b/src/index.ts @@ -9,6 +9,7 @@ import {useInteractionManager} from './useInteractionManager' import {useDeviceOrientation} from './useDeviceOrientation' import {useLayout} from './useLayout' import {useImageDimensions} from './useImageDimensions' +import {useKeyboardRelease} from './useKeyboardRelease' export { useDimensions, @@ -23,4 +24,5 @@ export { useDeviceOrientation, useLayout, useImageDimensions, + useKeyboardRelease, } diff --git a/src/useKeyboardRelease.ts b/src/useKeyboardRelease.ts new file mode 100644 index 00000000..6b59b67a --- /dev/null +++ b/src/useKeyboardRelease.ts @@ -0,0 +1,13 @@ +import {Keyboard, Platform} from 'react-native' + +export interface KeyboardReleaseReturns { + shouldSetResponse: () => boolean + onRelease: () => void +} + +export function useKeyboardRelease(): KeyboardReleaseReturns { + const shouldSetResponse = () => (Platform.OS === 'web' ? false : true) + const onRelease = () => Keyboard.dismiss() + + return {onRelease, shouldSetResponse} +}