@yandex/ui
Version:
Yandex UI components
28 lines (27 loc) • 1.28 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.Tumbler = void 0;
var tslib_1 = require("tslib");
var react_1 = tslib_1.__importStar(require("react"));
require("../polyfills/pointerfocus");
var pointerfocus_1 = require("../lib/pointerfocus");
var keyboard_1 = require("../lib/keyboard");
var Tumbler_1 = require("./Tumbler");
tslib_1.__exportStar(require("./Tumbler"), exports);
var Tumbler = function (_a) {
var checked = _a.checked, htmlOnKeyDown = _a.onKeyDown, props = tslib_1.__rest(_a, ["checked", "onKeyDown"]);
// prettier-ignore
var onKeyDown = react_1.useCallback(function (event) {
if ((!checked && keyboard_1.isKeyCode(event.keyCode, Tumbler_1.CHECKED_KEYS)) ||
(checked && keyboard_1.isKeyCode(event.keyCode, Tumbler_1.UNCHECKED_KEYS)) ||
(event.keyCode === keyboard_1.Keys.SPACE)) {
pointerfocus_1.forceUtilityFocus();
}
if (htmlOnKeyDown !== undefined) {
htmlOnKeyDown(event);
}
}, [checked, htmlOnKeyDown]);
return react_1.default.createElement(Tumbler_1.Tumbler, tslib_1.__assign({ checked: checked, onKeyDown: onKeyDown }, props));
};
exports.Tumbler = Tumbler;
exports.Tumbler.displayName = Tumbler_1.Tumbler.displayName;