UNPKG

react-native-customisable-combobox

Version:
42 lines (41 loc) 1.72 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.useGetSearchItems = void 0; var react_1 = require("react"); var useGetSearchItems = function (_a) { var items = _a.items, search = _a.search, searchField = _a.searchField, onSearchCallback = _a.onSearchCallback; var _b = (0, react_1.useState)(items), filteredItems = _b[0], setFilteredItems = _b[1]; (0, react_1.useEffect)(function () { if (search && search.length > 3) { if (onSearchCallback) { var customFilteredItems = onSearchCallback(search); if (customFilteredItems instanceof Promise) { customFilteredItems.then(setFilteredItems); } else { setFilteredItems(customFilteredItems); } return; } var foundItems = items.filter(function (item) { if (typeof item === "object" && searchField) { var fieldValue = item === null || item === void 0 ? void 0 : item[searchField]; if (typeof fieldValue === "string") { return fieldValue.toLowerCase().includes(search.toLowerCase()); } return false; } else { return (typeof item === "string" && item.toLowerCase().includes(search.toLowerCase())); } }); setFilteredItems(foundItems); } else { setFilteredItems(items); } }, [search, items, searchField]); return filteredItems; }; exports.useGetSearchItems = useGetSearchItems;