fx-form-widget
Version:
64 lines • 2.52 kB
JavaScript
import _Input from "antd/es/input";
import _extends from "@babel/runtime/helpers/extends";
import * as React from 'react';
import { useState } from 'react';
import { isNotNullValue } from './tools';
import './index.less';
var InputSearch = function InputSearch(_ref) {
var _ref$schema = _ref.schema,
schema = _ref$schema === void 0 ? {} : _ref$schema,
_ref$onChange = _ref.onChange,
onChange = _ref$onChange === void 0 ? function () {} : _ref$onChange,
_ref$value = _ref.value,
value = _ref$value === void 0 ? isNotNullValue(schema.data) ? schema.data : undefined : _ref$value;
var _schema$readonly = schema.readonly,
readonly = _schema$readonly === void 0 ? false : _schema$readonly,
_schema$placeholder = schema.placeholder,
placeholder = _schema$placeholder === void 0 ? '请输入' : _schema$placeholder,
_schema$minLength = schema.minLength,
minLength = _schema$minLength === void 0 ? undefined : _schema$minLength,
_schema$maxLength = schema.maxLength,
maxLength = _schema$maxLength === void 0 ? undefined : _schema$maxLength,
_schema$allowClear = schema.allowClear,
allowClear = _schema$allowClear === void 0 ? false : _schema$allowClear,
_schema$addonBefore = schema.addonBefore,
addonBefore = _schema$addonBefore === void 0 ? undefined : _schema$addonBefore,
_schema$addonAfter = schema.addonAfter,
addonAfter = _schema$addonAfter === void 0 ? undefined : _schema$addonAfter;
var _useState = useState(''),
inputValue = _useState[0],
setInputValue = _useState[1];
var defaultOptions = {};
if (schema['ui_options']) {
Object.keys(schema['ui_options']).forEach(function (key) {
defaultOptions[key] = schema['ui_options'][key];
});
}
var handleSearch = function handleSearch(value) {
return onChange(value);
};
var handleChange = function handleChange(e) {
setInputValue(e.target.value);
if (!e.target.value) {
onChange(e.target.value);
}
};
var options = _extends({
placeholder: placeholder,
maxLength: maxLength,
allowClear: allowClear,
addonBefore: addonBefore,
addonAfter: addonAfter,
minLength: minLength,
disabled: readonly,
suffix: maxLength ? value.length + "/" + maxLength : undefined
}, defaultOptions);
return /*#__PURE__*/React.createElement(_Input.Search, _extends({
type: "text",
onSearch: handleSearch,
onChange: handleChange
}, options, {
value: inputValue || value
}));
};
export default InputSearch;