tdesign-react
Version:
TDesign Component for React
54 lines (48 loc) • 1.65 kB
JavaScript
/**
* tdesign v1.16.2
* (c) 2025 tdesign
* @license MIT
*/
;
Object.defineProperty(exports, '__esModule', { value: true });
var React = require('react');
var common = require('../_chunks/dep-4fbbd844.js');
var _util_listener = require('../_util/listener.js');
require('../_chunks/dep-e0735b5f.js');
require('../_chunks/dep-b304bc94.js');
require('../_chunks/dep-4ce0670e.js');
require('../_chunks/dep-b325182b.js');
require('../_chunks/dep-bdafd287.js');
require('../_chunks/dep-3448f35f.js');
function useKeyboard(radioGroupRef, setInnerValue) {
var checkRadioInGroup = function checkRadioInGroup(e) {
if (common.CHECKED_CODE_REG.test(e.key) || common.CHECKED_CODE_REG.test(e.code)) {
var inputNode = e.target.querySelector("input");
if (!inputNode) return;
var data = 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
});
}
}
};
React.useEffect(function () {
_util_listener.on(radioGroupRef.current, "keydown", checkRadioInGroup);
return function () {
_util_listener.off(radioGroupRef.current, "keydown", checkRadioInGroup);
};
}, []);
}
exports["default"] = useKeyboard;
//# sourceMappingURL=useKeyboard.js.map