qt-public-ui
Version:
新设计规范下业务组件库
37 lines • 1.72 kB
JavaScript
import _extends from "@babel/runtime/helpers/esm/extends";
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
var _excluded = ["needControl", "limit", "onChange", "defaultValue", "value"];
import React from 'react';
import classnames from 'classnames';
import { Input } from 'antd';
import { useControllable } from 'qt-public-hooks';
export default (function (props) {
var _props$needControl = props.needControl,
needControl = _props$needControl === void 0 ? false : _props$needControl,
limit = props.limit,
onChange = props.onChange,
defaultValue = props.defaultValue,
antValue = props.value,
antProps = _objectWithoutPropertiesLoose(props, _excluded);
var _useControllable = useControllable(props, {
formatter: function formatter(val) {
return limit && limit > 0 ? val === null || val === void 0 ? void 0 : val.slice(0, limit) : val;
},
useEvent: true
}),
value = _useControllable[0],
setValue = _useControllable[1];
return /*#__PURE__*/React.createElement("span", {
className: "umui-textarea"
}, needControl ? /*#__PURE__*/React.createElement(Input.TextArea, _extends({}, antProps, {
onChange: onChange,
value: antValue
})) : /*#__PURE__*/React.createElement(Input.TextArea, _extends({}, antProps, {
onChange: setValue,
value: value
})), limit && limit > 0 && limit < Infinity && /*#__PURE__*/React.createElement("div", {
className: classnames('umui-textarea-counter', {
'umui-counter-limit': (value === null || value === void 0 ? void 0 : value.length) === limit
})
}, (value === null || value === void 0 ? void 0 : value.length) || 0, "/", limit));
});