linkmore-design
Version:
🌈 🚀lm组件库。🚀
68 lines (67 loc) • 2.36 kB
JavaScript
import _asyncToGenerator from "@babel/runtime/helpers/esm/asyncToGenerator";
import _regeneratorRuntime from "@babel/runtime/regenerator";
import React, { useEffect, useRef } from 'react';
import Button from "../../button";
import IconFont from "../../icon-font";
import Input from "../../input";
import InputNumber from "../../input-number";
// 数字输入框触发blur使用内置校验
var InputNumberRender = function InputNumberRender(props) {
var _props$value = props.value,
value = _props$value === void 0 ? '' : _props$value,
onChange = props.onChange;
var inputRef = useRef(null);
var handleSearch = /*#__PURE__*/function () {
var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
var val;
return _regeneratorRuntime.wrap(function _callee$(_context) {
while (1) switch (_context.prev = _context.next) {
case 0:
_context.next = 2;
return inputRef.current.blur();
case 2:
val = inputRef.current.value;
onChange === null || onChange === void 0 ? void 0 : onChange(val);
case 4:
case "end":
return _context.stop();
}
}, _callee);
}));
return function handleSearch() {
return _ref.apply(this, arguments);
};
}();
var handleClick = function handleClick() {
var val = inputRef.current.value;
onChange === null || onChange === void 0 ? void 0 : onChange(val);
};
useEffect(function () {
var _inputRef$current;
(_inputRef$current = inputRef.current) === null || _inputRef$current === void 0 ? void 0 : _inputRef$current.focus({
cursor: 'all'
});
}, []);
return /*#__PURE__*/React.createElement("div", {
className: "filter_dropdown"
}, /*#__PURE__*/React.createElement("div", {
className: "filter_header"
}, /*#__PURE__*/React.createElement(Input.Group, {
compact: true
}, /*#__PURE__*/React.createElement(InputNumber, {
ref: inputRef,
defaultValue: value,
onPressEnter: handleSearch,
size: "middle",
style: {
width: 'calc(100% - 32px)'
}
}), /*#__PURE__*/React.createElement(Button, {
icon: /*#__PURE__*/React.createElement(IconFont, {
type: "icon-sousuo"
}),
size: "middle",
onClick: handleClick
}))));
};
export default InputNumberRender;