What is @wordpress/keycodes?
@wordpress/keycodes is a utility package that provides constants and helper functions for working with keyboard key codes. It is particularly useful for handling keyboard events in a consistent manner across different browsers and environments.
What are @wordpress/keycodes's main functionalities?
Keycode Constants
The package provides constants for common key codes, making it easier to reference and use them in your code without having to remember the numeric values.
const { ENTER, ESCAPE } = require('@wordpress/keycodes');
console.log(ENTER); // Outputs: 13
console.log(ESCAPE); // Outputs: 27
isKeyboardEvent
This helper function checks if a given keyboard event matches a specified key. It simplifies the process of handling specific key events.
const { isKeyboardEvent } = require('@wordpress/keycodes');
const event = new KeyboardEvent('keydown', { keyCode: 13 });
console.log(isKeyboardEvent(event, 'enter')); // Outputs: true
getKeycodeByKey
This function returns the keycode for a given key name, providing a convenient way to map key names to their corresponding key codes.
const { getKeycodeByKey } = require('@wordpress/keycodes');
console.log(getKeycodeByKey('Enter')); // Outputs: 13
Other packages similar to @wordpress/keycodes
keycode
The 'keycode' package provides a simple utility for converting between keyboard key names and their corresponding key codes. It offers similar functionality to @wordpress/keycodes but is more focused on the conversion aspect rather than providing a comprehensive set of utilities.
mousetrap
Mousetrap is a library for handling keyboard shortcuts in JavaScript. While it offers more advanced features for binding and handling keyboard shortcuts, it also includes utilities for working with key codes, making it a more feature-rich alternative to @wordpress/keycodes.
hotkeys-js
Hotkeys-js is a lightweight library for handling keyboard shortcuts. It provides a simple API for binding and unbinding keyboard events, and includes utilities for working with key codes. It is similar to @wordpress/keycodes but with a focus on keyboard shortcuts.
Keycodes
Keycodes utilities for WordPress, used to check the key pressed in events like onKeyDown
. Contains keycodes constants for keyboard keys like DOWN
, UP
, ENTER
, etc.
Installation
Install the module
npm install @wordpress/keycodes --save
Usage
Check which key was used in an onKeyDown
event:
import { DOWN, ENTER } from '@wordpress/keycodes';
onKeyDown( event ) {
const { keyCode } = event;
if ( keyCode === DOWN ) {
alert( 'You pressed the down arrow!' );
} else if ( keyCode === ENTER ) {
alert( 'You pressed the enter key!' );
} else {
alert( 'You pressed another key.' );
}
}