ps-frame-father
Version:
An enterprise-class UI design language and React components implementation
49 lines (41 loc) • 1.72 kB
JavaScript
import "antd/es/input/style";
import _Input from "antd/es/input";
import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
var _excluded = ["value", "onChange", "isTextArea"];
import React, { useState } from 'react';
// 会清除前后空格的输入框组件:支持input和textarea
function BasicInput(props) {
// isTextArea: true是TextArea,false是普通Input
var value = props.value,
onChange = props.onChange,
_props$isTextArea = props.isTextArea,
isTextArea = _props$isTextArea === void 0 ? false : _props$isTextArea,
otherProps = _objectWithoutProperties(props, _excluded);
var _useState = useState(''),
_useState2 = _slicedToArray(_useState, 2),
inputValue = _useState2[0],
setInputValue = _useState2[1];
var triggerChange = function triggerChange(changedValue) {
onChange === null || onChange === void 0 ? void 0 : onChange(changedValue);
};
var handleChange = function handleChange(e) {
var val = e.target.value;
setInputValue(val);
triggerChange(val);
};
var handleBlur = function handleBlur() {
var trimVal = value || inputValue ? (value || inputValue).replace(/^\s+|\s+$/gm, '') : '';
setInputValue(trimVal);
triggerChange(trimVal);
};
var allProps = _objectSpread({
value: value || inputValue,
onChange: handleChange,
onBlur: handleBlur
}, otherProps);
return isTextArea ? /*#__PURE__*/React.createElement(_Input.TextArea, allProps) : /*#__PURE__*/React.createElement(_Input, allProps);
}
;
export default BasicInput;