@wordpress/components
Version:
UI components for WordPress.
64 lines (54 loc) • 1.28 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _element = require("@wordpress/element");
var _lodash = require("lodash");
var _compose = require("@wordpress/compose");
/**
* External dependencies
*/
/**
* WordPress dependencies
*/
function KeyboardShortcut({
target,
callback,
shortcut,
bindGlobal,
eventName
}) {
(0, _compose.useKeyboardShortcut)(shortcut, callback, {
bindGlobal,
target,
eventName
});
return null;
}
function KeyboardShortcuts({
children,
shortcuts,
bindGlobal,
eventName
}) {
const target = (0, _element.useRef)();
const element = (0, _lodash.map)(shortcuts, (callback, shortcut) => (0, _element.createElement)(KeyboardShortcut, {
key: shortcut,
shortcut: shortcut,
callback: callback,
bindGlobal: bindGlobal,
eventName: eventName,
target: target
})); // Render as non-visual if there are no children pressed. Keyboard
// events will be bound to the document instead.
if (!_element.Children.count(children)) {
return element;
}
return (0, _element.createElement)("div", {
ref: target
}, element, children);
}
var _default = KeyboardShortcuts;
exports.default = _default;
//# sourceMappingURL=index.js.map