A zero-dependencies, lightweight hook for capturing keyboard shortcuts in components. 5 times lighter than react-hotkeys-hook, 4 times lighter than use-hotkeys.
NPM
npm install --save react-shortcuts-hook
Or with Yarn:
yarn add react-shortcuts-hook
import React, { useState } from 'react'
import { useShortcuts } from 'react-shortcuts-hook'
const App = () => {
const [count, setCounter] = useState(0)
useShortcuts(['control', 'k'], () => setCounter(count + 1), [count])
return (
<div>
{`You've pressed Control+K ${count} times.`}
</div>
)
}
export default App
keys: string[]
: Here you can set a single key, or a combination of keys, that you want hook to listen to. Every entry of this array should be a string with a properKeyboardEvent.key
value. Here you can find a nice cheatsheet.callback: () => void
: This is a callback that fires when all of the keys specified in the first argument are pressed at the same time. Note that is gets memoized under the hood, so you don't have to do that by yourself.deps: any[] = []
: This is the dependency array that gets appended to memoisation of your callback. If you depend on values that change over time, you should put them here.
- react-hotkeys-hook for inspiring this library
- create-react-hook for a project template.
- Size-Limit for size сontrol.
MIT © Nikita Volkov
This hook was bootstrapped using create-react-hook.