useKeyPress()
This hook lets you listen for specific key codes and tells you whether they are currently pressed or not.
import { useKeyPress } from '@xyflow/react';
export default function () {
const spacePressed = useKeyPress('Space');
const cmdAndSPressed = useKeyPress(['Meta+s', 'Strg+s']);
return (
<div>
{spacePressed && <p>Space pressed!</p>}
{cmdAndSPressed && <p>Cmd + S pressed!</p>}
</div>
);
}Signature
This hook lets you listen for specific key codes and tells you whether they are currently pressed or not.
Parameters
keyCode?: KeyCodeThe key code (string or array of strings) specifies which key(s) should trigger an action.
A string can represent:
- A single key, e.g.
'a' - A key combination, using
'+'to separate keys, e.g.'a+d'
An array of strings represents multiple possible key inputs. For example, ['a', 'd+s']
means the user can press either the single key 'a' or the combination of 'd' and 's'.
options.target?: Window | Document | HTMLElement | ShadowRoot | nullListen to key presses on a specific element.options.actInsideInputWithModifier?: booleanYou can use this flag to prevent triggering the key press hook when an input field is focused.options.preventDefault?: boolean
Returns
boolean
Notes
- This hook does not rely on a
ReactFlowInstanceso you are free to use it anywhere in your app!