Research
Security News
Quasar RAT Disguised as an npm Package for Detecting Vulnerabilities in Ethereum Smart Contracts
Socket researchers uncover a malicious npm package posing as a tool for detecting vulnerabilities in Etherium smart contracts.
@fluentui/keyboard-keys
Advanced tools
Contains a set of keyboard constants for key and keyCode
@fluentui/keyboard-keys is a utility package that provides constants for keyboard keys, making it easier to handle keyboard events in a consistent and readable manner. It is part of the Fluent UI library and is designed to help developers manage keyboard interactions in their applications.
Key Constants
Provides constants for common keyboard keys, which can be used to handle keyboard events more easily and avoid hardcoding key values.
const { Enter, Escape, ArrowUp, ArrowDown } = require('@fluentui/keyboard-keys');
console.log(Enter); // 'Enter'
console.log(Escape); // 'Escape'
console.log(ArrowUp); // 'ArrowUp'
console.log(ArrowDown); // 'ArrowDown'
Key Event Handling
Simplifies the process of handling keyboard events by using predefined constants for key values, improving code readability and maintainability.
const { Enter, Escape } = require('@fluentui/keyboard-keys');
document.addEventListener('keydown', (event) => {
if (event.key === Enter) {
console.log('Enter key pressed');
} else if (event.key === Escape) {
console.log('Escape key pressed');
}
});
The 'keycode' package provides a simple utility for converting between keyboard key names and their key codes. It offers similar functionality to @fluentui/keyboard-keys by allowing developers to handle keyboard events more easily, but it focuses more on key code conversions rather than providing constants.
The 'keyboardjs' package is a robust library for handling keyboard events. It offers more advanced features compared to @fluentui/keyboard-keys, such as key combinations, sequences, and context-specific bindings. It is suitable for applications that require complex keyboard interactions.
The 'mousetrap' package is a lightweight library for handling keyboard shortcuts. It provides functionality similar to @fluentui/keyboard-keys but focuses on defining and managing keyboard shortcuts in a more user-friendly way. It is ideal for applications that need to support a variety of keyboard shortcuts.
Contains a set of keyboard constants for key and keyCode comparison in components. This package contains named key values from The w3 uievents-key specification.
Unicode values are not included since there are a lot of locales to consider and they provide no benefit since unicode characters can be used directly in code.
import { Enter } from '@fluentui/keyboard-keys';
const onKeyDown = (e: React.KeyboardEvent) => {
if (e.key === Enter) {
// ...
}
// Unicode characters 'a', '1', '%'...
// should be used directly in code
if (e.key === 'a') {
// ...
}
};
In order to migrate easily from @fluentui/keyboard-key
legacy keyCode
support is available in this library but
is not encouraged for reuse since this propoerty has been deprecated for a while and will be removed in future
standards.
import { keyCodes } from '@fluentui/keyboard-keys';
const onKeyDown = (e: React.KeyboardEvent) => {
if (e.keyCode === keyCodes.Enter) {
// ...
}
if (e.key === keyCodes.a) {
// ...
}
};
FAQs
Contains a set of keyboard constants for key and keyCode
The npm package @fluentui/keyboard-keys receives a total of 109,954 weekly downloads. As such, @fluentui/keyboard-keys popularity was classified as popular.
We found that @fluentui/keyboard-keys demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 12 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
Security News
Socket researchers uncover a malicious npm package posing as a tool for detecting vulnerabilities in Etherium smart contracts.
Security News
Research
A supply chain attack on Rspack's npm packages injected cryptomining malware, potentially impacting thousands of developers.
Research
Security News
Socket researchers discovered a malware campaign on npm delivering the Skuld infostealer via typosquatted packages, exposing sensitive data.