|
@@ -7,7 +7,7 @@ import BaseComponent from '../_base/baseComponent';
|
|
|
import Label, { LabelProps } from '../form/label';
|
|
|
|
|
|
import { noop } from '@douyinfe/semi-foundation/utils/function';
|
|
|
-import { isFunction } from 'lodash';
|
|
|
+import { get, isFunction } from 'lodash';
|
|
|
|
|
|
const prefixCls = cssClasses.PREFIX;
|
|
|
const sizeSet = strings.SIZE;
|
|
@@ -84,7 +84,7 @@ export default class inputGroup extends BaseComponent<InputGroupProps, InputGrou
|
|
|
}
|
|
|
|
|
|
render() {
|
|
|
- const { size, style, className, children, label, onBlur: groupOnBlur, onFocus: groupOnFocus, ...rest } = this.props;
|
|
|
+ const { size, style, className, children, label, onBlur: groupOnBlur, onFocus: groupOnFocus, disabled: groupDisabled, ...rest } = this.props;
|
|
|
const groupCls = cls(
|
|
|
`${prefixCls}-group`,
|
|
|
{
|
|
@@ -96,10 +96,11 @@ export default class inputGroup extends BaseComponent<InputGroupProps, InputGrou
|
|
|
if (children) {
|
|
|
inner = (Array.isArray(children) ? children : [children]).map((item, index) => {
|
|
|
if (item) {
|
|
|
- const { onBlur: itemOnBlur, onFocus: itemOnFocus } = (item as any).props;
|
|
|
- const onBlur = isFunction(itemOnBlur) ? itemOnBlur : groupOnBlur;
|
|
|
- const onFocus = isFunction(itemOnFocus) ? itemOnFocus : groupOnFocus;
|
|
|
- return React.cloneElement(item as any, { key: index, size, onBlur, onFocus, ...rest });
|
|
|
+ const { onBlur: itemOnBlur, onFocus: itemOnFocus, disabled: itemDisabled } = (item as any).props;
|
|
|
+ const onBlur = isFunction(itemOnBlur) && get(itemOnBlur, 'name') !== 'noop' ? itemOnBlur : groupOnBlur;
|
|
|
+ const onFocus = isFunction(itemOnFocus) && get(itemOnFocus, 'name') !== 'noop' ? itemOnFocus : groupOnFocus;
|
|
|
+ const disabled = typeof itemDisabled === 'boolean' ? itemDisabled : groupDisabled;
|
|
|
+ return React.cloneElement(item as any, { key: index, ...rest, size, onBlur, onFocus, disabled });
|
|
|
}
|
|
|
return null;
|
|
|
});
|