# react-hotkeys
**Repository Path**: mirrors_jaywcjlove/react-hotkeys
## Basic Information
- **Project Name**: react-hotkeys
- **Description**: React component to listen to keydown and keyup keyboard events, defining and dispatching keyboard shortcuts.
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2021-10-22
- **Last Updated**: 2025-09-21
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
react-hotkeys
===
[](https://www.npmjs.com/package/react-hot-keys)
[](https://github.com/jaywcjlove/react-hotkeys/actions/workflows/ci.yml)
[](https://www.npmjs.org/package/react-hot-keys) [](https://jaywcjlove.github.io/react-hotkeys/coverage/lcov-report/)
React component to listen to keydown and keyup keyboard events, defining and dispatching keyboard shortcuts. Uses a fork of [hotkeys.js](https://github.com/jaywcjlove/hotkeys) for keydown detection of special characters. You give it a keymap of shortcuts & it bind it to the mousetrap singleton. The, it'll unbind it when the component unmounts.
> [react-hotkeys-hook](https://github.com/JohannesKlauss/react-hotkeys-hook) - React hook for using keyboard shortcuts in components. Make sure that you have at least version 16.8 of react and react-dom installed, or otherwise hooks won't work for you.
## Example
### Install
```sh
npm i -S react-hot-keys
```
### Demo
Preview [demo](https://jaywcjlove.github.io/react-hotkeys/).
- [Codepen example](https://codepen.io/jaywcjlove/pen/bJxbwG?editors=0010).
- [CodesandBox Example](https://codesandbox.io/s/hotkeys-116-8rge8)
```js
import React from 'react';
import Hotkeys from 'react-hot-keys';
export default class HotkeysDemo extends React.Component {
constructor(props) {
super(props);
this.state = {
output: 'Hello, I am a component that listens to keydown and keyup of a',
}
}
onKeyUp(keyName, e, handle) {
console.log("test:onKeyUp", e, handle)
this.setState({
output: `onKeyUp ${keyName}`,
});
}
onKeyDown(keyName, e, handle) {
console.log("test:onKeyDown", keyName, e, handle)
this.setState({
output: `onKeyDown ${keyName}`,
});
}
render() {
return (
{this.state.output}
)
}
}
```
## API
### keyName
Supported keys `⇧`, `shift`, `option`, `⌥`, `alt`, `ctrl`, `control`, `command`, `⌘` .
`⌘` Command()
`⌃` Control
`⌥` Option(alt)
`⇧` Shift
`⇪` Caps Lock
~~`fn` Function key is `fn` (not supported)~~
`↩︎` return/enter
`space` space keys
### onKeyDown
Callback function to be called when user pressed the target buttons
`space` space keys
### onKeyUp
Callback function to be called when user key uped the target buttons
### allowRepeat
> allowRepeat?: boolean;
`allowRepeat` to allow auto repeating key down
### disabled
> disabled?: boolean;
Disable `onKeyDown` and `onKeyUp` events. Default: `undefined`
### filter
`INPUT` `SELECT` `TEXTAREA` default does not handle. `filter` to return to the true shortcut keys set to play a role, flase shortcut keys set up failure.
```diff
{
+ return true;
+ }}
onKeyDown={this.onKeyDown.bind(this)}
onKeyUp={this.onKeyUp.bind(this)}
/>
```
## Contributors
As always, thanks to our amazing contributors!
Made with [action-contributors](https://github.com/jaywcjlove/github-action-contributors).
## License
Licensed under the MIT License.