A custom hook to ease the key-press listeners of a target/global.
Check the demo here
Listening for key-press might be tedious when it comes to listening for combination keys such as Ctrl + Shift + A or the entered letter is a caps or small varient or a number.
use-key-capture is a custom hook which will lets you not to worry about the key-press event. Just plugin in use-key-capture hook to the target you want to listen for key press event or by default it can listen for key-press event globally.It gives simple API, which helps you listen for complex key combinations with ease.
Example: Ctrl + Shift + A - useKeyCapture
gives
{ key: 'A', isCaps: true, isWithCtrl: true, isWithShift: true }
npm
yarn
This same working demo is here.
import React from 'react'; import useKey from 'use-key-capture'; import './styles.css'; const displayKeys = ['Q', 'W', 'E', 'R', 'T', 'Y', 'Backspace']; const TargetEventComponent = () => { /* keyData - gives the data of pressed key, i.e) isCaps, isNumber, isWithShift. getTargetProps - a prop getter to be given if a target (input, textarea) have to be listened for key-press. */ const { keyData, getTargetProps } = useKey(); const getIsActive = key => (keyData.key === key ? 'active' : ''); return ( <div className="container-target"> <div className="message"> Type QWERTY in the input element below. If the focus is outside the target, we won't see any change. </div> <input {...getTargetProps()} /> <div className="container"> {displayKeys.map(key => { return ( <div key={key} className={`box ${getIsActive(key)}`}> {key} </div> ); })} </div> </div> ); }; export default TargetEventComponent;
It will be the most used props from useKeyCapture
. It gives the key/key varient/key combinations pressed.
type: function({})
A prop getter to be given if a target (input, textarea) have to be listened for key-press.
type: function({})
It will reset all the values in keyData
props to the initial values.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4