linkmore-design
Version:
🌈 🚀lm组件库。🚀
62 lines (60 loc) • 1.85 kB
JavaScript
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _react = _interopRequireWildcard(require("react"));
var _InputSearchClose = _interopRequireDefault(require("../components/InputSearchClose"));
const FuzzySearch = ({
instance
}) => {
const inputRef = (0, _react.useRef)(null);
const {
state,
setFilterValue,
setSearchFilter,
size,
placeholder,
searchKey,
searchConfig,
locale
} = instance;
// 默认值, 不同searchKey类型时获取的方式不同
const defaultValue = (0, _react.useMemo)(() => {
const nValue = Array.isArray(searchKey) ? state.searchFilter?.[searchKey[0]] : state.basicFilter?.[searchKey];
return nValue || '';
}, [state.basicFilter, state.searchFilter, searchKey]);
const onSearch = val => {
const isFuzzy = Array.isArray(searchKey);
const item = {
...searchConfig,
field: searchKey
};
if (isFuzzy) {
setSearchFilter(val);
} else {
setFilterValue(val, item);
}
};
(0, _react.useEffect)(() => {
if (!defaultValue) {
inputRef.current.setValue('');
} else {
inputRef.current.setValue(defaultValue);
}
}, [state.basicFilter, state.searchFilter]);
return /*#__PURE__*/_react.default.createElement("div", {
className: "lm_filter_search"
}, /*#__PURE__*/_react.default.createElement(_InputSearchClose.default, {
ref: inputRef,
allowClear: true,
defaultValue: defaultValue,
size: size,
placeholder: placeholder || locale.placeholder,
onSearch: onSearch
}));
};
var _default = FuzzySearch;
exports.default = _default;
;