useKeyPress
A hook for detecting keyboard key presses, including support for modifier keys (Ctrl, Alt, Shift). Perfect for implementing keyboard shortcuts and controls.
Parameters
config
:KeyConfig
- Configuration object for the key press detectionkey
:string
- The target key to detectctrl?
:boolean
- Whether Ctrl key should be pressedalt?
:boolean
- Whether Alt key should be pressedshift?
:boolean
- Whether Shift key should be pressed
Returns
boolean
- Whether the configured key combination is currently pressed
Usage
import { useKeyPress } from '@rhinolabs/react-hooks';
function ShortcutHandler() {
// Detect when 'S' is pressed with Ctrl
const isSavePressed = useKeyPress({ key: 's', ctrl: true });
// Detect when Escape key is pressed
const isEscPressed = useKeyPress({ key: 'Escape' });
return (
<div>
<p>Press Ctrl + S to save</p>
{isSavePressed && <span>Saving...</span>}
<p>Press Escape to cancel</p>
{isEscPressed && <span>Cancelling...</span>}
</div>
);
}
Notes
- Supports single keys and modifier combinations
- Automatically handles keydown and keyup events
- Cleans up event listeners on unmount
- Works with any keyboard key
- Handles modifier keys independently
- Safe for concurrent key presses
- Updates state in real-time
Last updated on