UNPKG

qt-public-ui

Version:

新设计规范下业务组件库

109 lines 3.65 kB
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;