@flatbiz/antd
Version:
60 lines (56 loc) • 1.86 kB
JavaScript
/*! @flatjs/forge MIT @flatbiz/antd */
import { Space, Radio } from 'antd';
import { valueIsEqual } from '@flatbiz/utils';
import { jsx } from 'react/jsx-runtime';
/**
* RadioGroupWrapper 为了解决 RadioGroup 组件不能取消选中问题
* @param props
* @returns
*/
var RadioGroupWrapper = function RadioGroupWrapper(props) {
var onChange = function onChange(event) {
return new Promise(function ($return, $error) {
var _props$onChange, value;
value = event.target.value;
if (props.onPreChange) {
return Promise.resolve(props.onPreChange(value)).then(function ($await_2) {
try {
return $If_1.call(this);
} catch ($boundEx) {
return $error($boundEx);
}
}.bind(this), $error);
}
function $If_1() {
(_props$onChange = props.onChange) === null || _props$onChange === void 0 || _props$onChange.call(props, value);
return $return();
}
return $If_1.call(this);
});
};
var onClick = function onClick(event) {
if (!props.isCancel) return;
var value = event.target.value;
if (valueIsEqual(props.value, value)) {
var _props$onChange2;
(_props$onChange2 = props.onChange) === null || _props$onChange2 === void 0 || _props$onChange2.call(props, undefined);
}
};
return /*#__PURE__*/jsx(Space, {
size: 5,
wrap: true,
direction: props.direction,
children: props.options.map(function (item) {
return /*#__PURE__*/jsx(Radio, {
value: item.value,
onClick: onClick,
checked: props.value === item.value,
onChange: onChange,
disabled: props.disabled || item.disabled,
children: item.label
}, String(item.value));
})
});
};
export { RadioGroupWrapper as R };
//# sourceMappingURL=radio-group-wrapper-Dip9OsdR.js.map