UNPKG

ps-frame-father

Version:

An enterprise-class UI design language and React components implementation

93 lines (80 loc) 2.99 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard"); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _react = _interopRequireWildcard(require("react")); var _classnames = _interopRequireDefault(require("classnames")); var _propTypes = _interopRequireDefault(require("prop-types")); require("./index.css"); /** * Input input组件 * @param {icon} ReactNode 是否带icon * @param {defaultValue} string 输入框默认内容 * @param {id} string 输入框id * @param {className} string 输入框的类名 * @param {style} object 输入框的样式 * @param {placeholder} string 输入框的占位符 * @param {type} string 输入框类型 * @param {autoFocus} bool 输入框是否自动聚焦 * @param {value} string 输入框的值 * @param {onChange} func 输入框变化时的回调 * @param {onIconClick} func 当icon按钮点击时的回调 */ function Input(props) { var icon = props.icon, defaultValue = props.defaultValue, id = props.id, className = props.className, _props$type = props.type, type = _props$type === void 0 ? 'text' : _props$type, value = props.value, onChange = props.onChange, style = props.style, autoFocus = props.autoFocus, _props$placeholder = props.placeholder, placeholder = _props$placeholder === void 0 ? '请输入内容' : _props$placeholder, onIconClick = props.onIconClick; var textInput = /*#__PURE__*/_react.default.createRef(); var handleChange = function handleChange(e) { onChange && onChange(e.target.value); }; var handleIconClick = function handleIconClick() { onIconClick && onIconClick(textInput.current.value); }; (0, _react.useEffect)(function () { autoFocus && textInput.current.focus(); }, []); return /*#__PURE__*/_react.default.createElement("div", { className: "xInputWrap" }, /*#__PURE__*/_react.default.createElement("input", { className: (0, _classnames.default)('xInputInner', className), type: type, id: id, ref: textInput, style: style, placeholder: placeholder, value: value || typeof value === 'undefined' ? defaultValue : '', onChange: handleChange }), !!icon && /*#__PURE__*/_react.default.createElement("span", { className: "xIconInput", onClick: handleIconClick }, icon)); } Input.propTypes = { icon: _propTypes.default.element, defaultValue: _propTypes.default.string, id: _propTypes.default.string, className: _propTypes.default.string, placeholder: _propTypes.default.string, type: _propTypes.default.string, autoFocus: _propTypes.default.bool, style: _propTypes.default.object, value: _propTypes.default.string, onChange: _propTypes.default.func, onIconClick: _propTypes.default.func }; var _default = Input; exports.default = _default;