qt-public-ui
Version:
新设计规范下业务组件库
46 lines (45 loc) • 2.35 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = void 0;
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
var _react = _interopRequireDefault(require("react"));
var _classnames = _interopRequireDefault(require("classnames"));
var _antd = require("antd");
var _qtPublicHooks = require("qt-public-hooks");
var _excluded = ["needControl", "limit", "onChange", "defaultValue", "value"];
var _default = exports["default"] = function _default(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 = (0, _objectWithoutProperties2["default"])(props, _excluded);
var _useControllable = (0, _qtPublicHooks.useControllable)(props, {
formatter: function formatter(val) {
return limit && limit > 0 ? val === null || val === void 0 ? void 0 : val.slice(0, limit) : val;
},
useEvent: true
}),
_useControllable2 = (0, _slicedToArray2["default"])(_useControllable, 2),
value = _useControllable2[0],
setValue = _useControllable2[1];
return /*#__PURE__*/_react["default"].createElement("span", {
className: "umui-textarea"
}, needControl ? /*#__PURE__*/_react["default"].createElement(_antd.Input.TextArea, (0, _extends2["default"])({}, antProps, {
onChange: onChange,
value: antValue
})) : /*#__PURE__*/_react["default"].createElement(_antd.Input.TextArea, (0, _extends2["default"])({}, antProps, {
onChange: setValue,
value: value
})), limit && limit > 0 && limit < Infinity && /*#__PURE__*/_react["default"].createElement("div", {
className: (0, _classnames["default"])('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));
};