qt-public-ui
Version:
新设计规范下业务组件库
109 lines • 3.65 kB
JavaScript
import React, { useState, useRef } from 'react';
import { Popconfirm, Input, message } from 'antd';
import { IconSlim as Icon } from '..';
import './style';
var EditNameCheckName = function EditNameCheckName(text) {
var err = '';
if (text === '') {
err = '名称不能为空,请重新输入!';
} else if (/ \s+/g.test(text)) {
err = '显示名称不能出现连续空格,请重新输入';
} else if (text.length > 40) {
err = '名称长度不能大于40个字符';
} else {
err = '';
}
return err;
};
var EditName = function EditName(props) {
var _props$title = props.title,
title = _props$title === void 0 ? '' : _props$title,
_props$value = props.value,
value = _props$value === void 0 ? '' : _props$value,
_props$width = props.width,
width = _props$width === void 0 ? '240px' : _props$width,
_props$iconType = props.iconType,
iconType = _props$iconType === void 0 ? 'umicon-edit' : _props$iconType,
_props$okText = props.okText,
okText = _props$okText === void 0 ? '确认' : _props$okText,
_props$cancelText = props.cancelText,
cancelText = _props$cancelText === void 0 ? '取消' : _props$cancelText,
_props$placeholder = props.placeholder,
placeholder = _props$placeholder === void 0 ? '请输入' : _props$placeholder,
_props$placement = props.placement,
placement = _props$placement === void 0 ? 'top' : _props$placement,
checkName = props.checkName,
onChange = props.onChange;
var containerRef = useRef();
var _useState = useState('' || value),
curValue = _useState[0],
setCurValue = _useState[1];
var _useState2 = useState(''),
errText = _useState2[0],
setErrText = _useState2[1];
var handleEditAction = function handleEditAction() {
setCurValue(value);
};
var handleEditValue = function handleEditValue(e) {
var changeValue = e.target.value.replace(/(^\s*)/g, '');
setCurValue(changeValue);
if (checkName) {
setErrText(checkName(changeValue));
} else {
setErrText(EditNameCheckName(changeValue));
}
};
var handleEditPost = function handleEditPost() {
if (errText) {
message.error(errText);
setErrText('');
setCurValue('');
return false;
}
onChange(curValue);
setErrText('');
setCurValue('');
};
var handleEditCancel = function handleEditCancel() {
setErrText('');
setCurValue('');
};
return /*#__PURE__*/React.createElement("div", {
className: "umui-edit-name",
ref: containerRef
}, /*#__PURE__*/React.createElement(Popconfirm, {
title: /*#__PURE__*/React.createElement("div", null, title.length > 0 && /*#__PURE__*/React.createElement("div", {
className: "edit-name-title"
}, title), /*#__PURE__*/React.createElement(Input, {
placeholder: placeholder,
style: {
width: width
},
value: curValue,
onChange: function onChange(e) {
return handleEditValue(e);
}
}), /*#__PURE__*/React.createElement("span", {
className: "edit-name-error-style"
}, errText)),
placement: placement,
onConfirm: handleEditPost,
onCancel: handleEditCancel,
okText: okText,
cancelText: cancelText,
icon: /*#__PURE__*/React.createElement(Icon, {
style: {
display: 'none'
}
}),
getPopupContainer: function getPopupContainer() {
return containerRef.current || document.body;
}
}, /*#__PURE__*/React.createElement(Icon, {
onClick: handleEditAction,
type: iconType,
className: "edit-name-icon-style"
})));
};
EditName.displayName = 'EditName';
export default EditName;