= [];
const inner = React.Children.map(children, (child: any) => {
if (child && child.props && child.props.field) {
groupFieldSet.push(child.props.field);
return React.cloneElement(child, {
isInInputGroup: true,
// noErrorMessage: true,
// noLabel: true
});
}
return null;
});
const groupCls = classNames({
[`${prefix}-field-group`]: true
});
const labelCol = formProps.labelCol;
const wrapperCol = formProps.wrapperCol;
const labelAlign = formProps.labelAlign;
const appendCol = labelCol && wrapperCol;
const labelColCls = labelCol ? `${prefix}-col-${labelAlign}` : '';
const labelContent = this.renderLabel(label, formProps);
const inputGroupContent = (
{inner}
);
const groupErrorContent = ();
const extraCls = classNames(`${prefix}-field-extra`, {
[`${prefix}-field-extra-string`]: typeof extraText === 'string',
[`${prefix}-field-extra-middle`]: extraTextPosition === 'middle',
[`${prefix}-field-extra-bottom`]: extraTextPosition === 'bottom',
});
const extraContent = extraText ? {extraText}
: null;
let content: any;
switch (true) {
case !appendCol:
content = (
<>
{labelContent}
{extraTextPosition === 'middle' ? extraContent : null}
{inputGroupContent}
{extraTextPosition === 'bottom' ? extraContent : null}
{groupErrorContent}
>
);
break;
case appendCol && labelPosition === 'top':
// When labelPosition is top, you need to add an overflow hidden div to the label, otherwise it will be arranged horizontally
content = (
<>
{labelContent}
{extraTextPosition === 'middle' ? extraContent : null}
{inputGroupContent}
{extraTextPosition === 'bottom' ? extraContent : null}
{groupErrorContent}
>
);
break;
case appendCol && labelPosition !== 'top':
content = (
<>
{labelContent}
{extraTextPosition === 'middle' ? extraContent : null}
{inputGroupContent}
{extraTextPosition === 'bottom' ? extraContent : null}
{groupErrorContent}
>
);
break;
default:
break;
}
return (
{content}
);
}
}
export default FormInputGroup;