An open API service indexing awesome lists of open source software.

https://github.com/accessible-ui/use-keycode

🅰 A React hook for firing callbacks on specific keycodes
https://github.com/accessible-ui/use-keycode

Last synced: 4 months ago
JSON representation

🅰 A React hook for firing callbacks on specific keycodes

Awesome Lists containing this project

README

        





useKeycode()




Bundlephobia


Code coverage


Build status


NPM Version


MIT License

npm i @accessible/use-keycode


A React hook for handling specific key codes with a callback on `keydown`

## Quick Start

```jsx harmony
import {useKeycode, useKeycodes} from '@accessible/use-keycode'
// one keycode
const Component = () => {
// logs event when escape key is pressed
const ref = useKeycode(27, console.log)
return


}
// several keycodes
const Component = () => {
// logs event when escape or enter key is pressed
const ref = useKeycodes({27: console.log, 13: console.log})
return

}
```

## API

### `useKeycode(which: number, callback: (event?: KeyboardEvent) => any)`

#### Arguments

| Argument | Type | Default | Required? | Description |
| -------- | -------------------------------- | ----------- | --------- | ---------------------------------------------------------------------------------------- |
| `which` | number | `undefined` | Yes | The `event.which` you want to trigger the callback |
| callback | `(event?: KeyboardEvent) => any` | `undefined` | Yes | The callback you want to trigger when the `event.which` matches the latest `keyUp` event |

#### Returns `React.MutableRefObject`

### `useKeycodes(handlers: Record any>)`

#### Arguments

| Argument | Type | Default | Required? | Description |
| ---------- | ------------------------------------------------ | ----------- | --------- | ------------------------------------------------------------------------------------- |
| `handlers` | `Record any>` | `undefined` | Yes | An object with keys matching the `event.which` you want to trigger the callback value |

#### Returns `React.MutableRefObject`

## LICENSE

MIT