UNPKG

linkmore-design

Version:

🌈 🚀lm组件库。🚀

51 lines (50 loc) 1.97 kB
import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2"; import React, { useEffect, useMemo, useRef } from 'react'; import InputSearchClose from "../components/InputSearchClose"; var FuzzySearch = function FuzzySearch(_ref) { var instance = _ref.instance; var inputRef = useRef(null); var state = instance.state, setFilterValue = instance.setFilterValue, setSearchFilter = instance.setSearchFilter, size = instance.size, placeholder = instance.placeholder, searchKey = instance.searchKey, searchConfig = instance.searchConfig, locale = instance.locale; // 默认值, 不同searchKey类型时获取的方式不同 var defaultValue = useMemo(function () { var _state$searchFilter, _state$basicFilter; var nValue = Array.isArray(searchKey) ? (_state$searchFilter = state.searchFilter) === null || _state$searchFilter === void 0 ? void 0 : _state$searchFilter[searchKey[0]] : (_state$basicFilter = state.basicFilter) === null || _state$basicFilter === void 0 ? void 0 : _state$basicFilter[searchKey]; return nValue || ''; }, [state.basicFilter, state.searchFilter, searchKey]); var onSearch = function onSearch(val) { var isFuzzy = Array.isArray(searchKey); var item = _objectSpread(_objectSpread({}, searchConfig), {}, { field: searchKey }); if (isFuzzy) { setSearchFilter(val); } else { setFilterValue(val, item); } }; useEffect(function () { if (!defaultValue) { inputRef.current.setValue(''); } else { inputRef.current.setValue(defaultValue); } }, [state.basicFilter, state.searchFilter]); return /*#__PURE__*/React.createElement("div", { className: "lm_filter_search" }, /*#__PURE__*/React.createElement(InputSearchClose, { ref: inputRef, allowClear: true, defaultValue: defaultValue, size: size, placeholder: placeholder || locale.placeholder, onSearch: onSearch })); }; export default FuzzySearch;