https://github.com/mybigday/expo-global-keyevent
https://github.com/mybigday/expo-global-keyevent
Last synced: about 1 month ago
JSON representation
- Host: GitHub
- URL: https://github.com/mybigday/expo-global-keyevent
- Owner: mybigday
- Created: 2022-11-02T09:20:17.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2022-11-02T09:24:23.000Z (over 2 years ago)
- Last Synced: 2025-05-01T14:18:18.885Z (about 2 months ago)
- Language: JavaScript
- Size: 474 KB
- Stars: 0
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
[](https://github.com/mybigday/expo-global-keyevent)
> Expo wrapper for react-native-global-keyevent
## Introdution
```js
import GlobalKeyEvent from 'react-native-global-keyevent'GlobalKeyEvent.addKeyDownListener((evt) => {
console.log('---key down---')
console.log('code:', evt.keyCode)
console.log('key:', evt.pressedKey)
console.log('flag shift:', evt.shift)
})
GlobalKeyEvent.addKeyUpListener((evt) => {
console.log('---key up---')
console.log('code:', evt.keyCode)
console.log('key:', evt.pressedKey)
console.log('flag shift:', evt.shift)
})
```## Installation
- Add dependency with `yarn add react-native-global-keyevent expo-global-keyevent`
## Usage
- `GlobalKeyEvent.addKeyDownListener((event: GlobalKeyEvent) => {}): EmitterSubscription`
- `GlobalKeyEvent.addKeyUpListener((event: GlobalKeyEvent) => {}): EmitterSubscription`
- [EmitterSubscription reference](https://github.com/facebook/react-native/blob/8bd3edec88148d0ab1f225d2119435681fbbba33/Libraries/vendor/emitter/_EmitterSubscription.js)```flow
type GlobalKeyEvent = {
pressedKey: string,
keyCode: number,
shift: boolean,
control: boolean,
alt: boolean,
meta: boolean,
capsLock: boolean,
fn: boolean,
numericPad: boolean,
}
```#### `GlobalKeyEvent`
| Prop | Type | Note |
| ------------- | ------------| ------------------------------------ |
| `pressedKey` | `String` | Pressed key |
| `keyCode` | `Number` | [Not supported on iOS] Key code |
| `shift` | `Boolean` | Is `Shift` key hold? |
| `control` | `Boolean` | Is `Ctrl` (iOS: `Control`) key hold? |
| `alt` | `Boolean` | Is `Alt` (iOS: `Option`) key hold? |
| `meta` | `Boolean` | Is `META` (iOS: `Command`) key hold? |
| `capsLock` | `Boolean` | Is `Caps Lock` enabled? |
| `fn` | `Boolean` | [Android only] Is `Fn` key hold? |
| `numericPad` | `Boolean` | [iOS only] Is user pressed a key located on the numeric keypad? |## Credits
- [`react-native-keyevent`](https://github.com/kevinejohn/react-native-keyevent) used to be our solution before this.
## License
[MIT](LICENSE.md)
---
Built and maintained by BRICKS.