tdesign-react
Version:
TDesign Component for React
45 lines (41 loc) • 1.39 kB
JavaScript
/**
* tdesign v1.15.1
* (c) 2025 tdesign
* @license MIT
*/
import { useEffect } from 'react';
import { C as CHECKED_CODE_REG } from '../_chunks/dep-dbcf7b24.js';
import { on, off } from '../_util/listener.js';
import '../_chunks/dep-3a09424a.js';
import 'lodash-es';
function useKeyboard(radioGroupRef, setInnerValue) {
var checkRadioInGroup = function checkRadioInGroup(e) {
if (CHECKED_CODE_REG.test(e.key) || CHECKED_CODE_REG.test(e.code)) {
var inputNode = e.target.querySelector("input");
var data = (inputNode === null || inputNode === void 0 ? void 0 : inputNode.dataset) || {};
if (inputNode.checked && data.allowUncheck) {
setInnerValue(void 0, {
e: e
});
} else {
var value = !isNaN(Number(data.value)) ? Number(data.value) : data.value;
value = typeof value === "string" && {
"true": true,
"false": false
}[value] || value;
value = typeof value === "string" && value[0] === "'" ? value.replace(/'/g, "") : value;
setInnerValue(value, {
e: e
});
}
}
};
useEffect(function () {
on(radioGroupRef.current, "keydown", checkRadioInGroup);
return function () {
off(radioGroupRef.current, "keydown", checkRadioInGroup);
};
}, []);
}
export { useKeyboard as default };
//# sourceMappingURL=useKeyboard.js.map