@aliretail/react-materials-components
Version:
44 lines (36 loc) • 1.36 kB
JavaScript
import { connect } from '@formily/next';
import { mapStyledProps } from "../shared";
import Input from "../../Input";
import Preview from "./Preview";
export var mapPreviewComponent = function mapPreviewComponent(Target, props, fieldProps) {
if (fieldProps === void 0) {
fieldProps = {};
}
var _fieldProps = fieldProps,
editable = _fieldProps.editable;
if (editable !== undefined) {
if (editable === false) {
var _props$xComponentPr;
// 进入到预览态
// 如果 props 中有 readOnlyRender,使用 readOnlyRender 的展示,否则使用 PreviewText
if ((_props$xComponentPr = props['x-component-props']) !== null && _props$xComponentPr !== void 0 && _props$xComponentPr.readOnlyRender) {
return props['x-component-props'].readOnlyRender;
}
return Preview;
}
}
return Target;
};
export var TextAreaConnectProps = function TextAreaConnectProps(props, fieldProps) {
mapStyledProps(props, fieldProps); // 当是disabled状态是不显示清除按钮
if (props.disabled) {
props.hasClear = false;
} // 当有限制长度的时候自动显示
if ('maxLength' in props && !('showLimitHint' in props)) {
props.showLimitHint = true;
}
};
export var TextArea = connect({
getProps: TextAreaConnectProps,
getComponent: mapPreviewComponent
})(Input.TextArea);