@vulcancreative/keyboard-event-bus
v1.0.2
Published
A lightweight package for handling keyboard events and triggering user-defined actions in React applications
Downloads
3
Readme
Keyboard Event Bus
A lightweight package for handling keyboard events and triggering user-defined actions in React applications
Demo
https://vulcancreative.github.io/keyboard-event-bus/
Instalation
npm install @vulcancreative/keyboard-event-bus
or
yarn add @vulcancreative/keyboard-event-bus
How to use
Wrap your React app with KeyboardEventBusProvider
import {KeyboardEventBusProvider} from "@vulcancreative/keyboard-event-bus";
<KeyboardEventBusProvider>
<App />
</KeyboardEventBusProvider>
Inside your React app, use the useKeyboardEventBus
hook to add new shortcut.
import { useKeyboardEventBus, Key } from "@vulcancreative/keyboard-event-bus";
const App = () => {
const shortcut = useKeyboardEventBus();
useEffect(() => {
const removeShortcut = shortcut?.add([Key.CMD_CTRL, Key.SHIFT, Key.CHAR_K], () => {
alert("This will show when you hit your shortcut");
});
return () => {
if (removeShortcut) {
removeShortcut();
}
}
}, []);
}
The useKeyboardEventBus
's add
method returns a callback to remove the shortcut from the keyboard event bus list.
Use it when you want to remove the shortcut, for example on component re-render.
List of available keys
| Key | Description | |-------------|---------------| | SHIFT_LEFT | Left Shift | | SHIFT_RIGHT | Right Shift | | SHIFT | All Shift | | TAB | Tab | | CTRL_LEFT | Left Control | | CTRL_RIGHT | Right Control | | CTRL | Control | | CMD_CTRL | Command / Control (Use Command on MacOs and Control on Windows)| | ALT_LEFT | Left Alt | | ALT_RIGHT | Right Alt | | ALT | All Alt | | CMD_LEFT | Left Meta / Command | | CMD_RIGHT | Right Meta / Command | | CMD | All Meta / Command | | BACKSPACE | Backspace | | ENTER | Enter | | CAPSLOCK | CapsLock | | CHAR_A | a | | CHAR_B | b | | CHAR_C | c | | CHAR_D | d | | CHAR_E | e | | CHAR_F | f | | CHAR_G | g | | CHAR_H | h | | CHAR_I | i | | CHAR_J | j | | CHAR_K | k | | CHAR_L | l | | CHAR_M | m | | CHAR_N | n | | CHAR_O | o | | CHAR_P | p | | CHAR_Q | q | | CHAR_R | r | | CHAR_S | s | | CHAR_T | t | | CHAR_U | u | | CHAR_V | v | | CHAR_W | w | | CHAR_X | x | | CHAR_Y | y | | CHAR_Z | z | | NUM_0 | 0 | | NUM_1 | 1 | | NUM_2 | 2 | | NUM_3 | 3 | | NUM_4 | 4 | | NUM_5 | 5 | | NUM_6 | 6 | | NUM_7 | 7 | | NUM_8 | 8 | | NUM_9 | 9 | | BACKQUOTE | ` | | SLASH | / | | BACKSLASH | \ |