UNPKG

@yandex/ui

Version:

Yandex UI components

24 lines (23 loc) 1.06 kB
import { __assign, __rest } from "tslib"; import React, { useCallback } from 'react'; import '../polyfills/pointerfocus'; import { forceUtilityFocus } from '../lib/pointerfocus'; import { Keys, isKeyCode } from '../lib/keyboard'; import { Tumbler as TumblerCommon, CHECKED_KEYS, UNCHECKED_KEYS } from './Tumbler'; export * from './Tumbler'; export var Tumbler = function (_a) { var checked = _a.checked, htmlOnKeyDown = _a.onKeyDown, props = __rest(_a, ["checked", "onKeyDown"]); // prettier-ignore var onKeyDown = useCallback(function (event) { if ((!checked && isKeyCode(event.keyCode, CHECKED_KEYS)) || (checked && isKeyCode(event.keyCode, UNCHECKED_KEYS)) || (event.keyCode === Keys.SPACE)) { forceUtilityFocus(); } if (htmlOnKeyDown !== undefined) { htmlOnKeyDown(event); } }, [checked, htmlOnKeyDown]); return React.createElement(TumblerCommon, __assign({ checked: checked, onKeyDown: onKeyDown }, props)); }; Tumbler.displayName = TumblerCommon.displayName;