// Metro module 9910 (f9911). import { useState, useEffect, useCallback } from "react"; import useInitialValue from "../../hooks/useInitialValue"; import Module6163 from "../autocompleter/index"; export default function useAutocompleter({ searchOptions }) { let c17550_2; c17550_2 = void 0; const [state, setState] = useState({ results: [], query: "" }); const initialValue = useInitialValue(() => { const module6163 = new Module6163((a0, a1) => { setState({ results: a0, query: a1 }); }); module6163.setLimit(20); module6163.search(""); return module6163; }); c17550_2 = initialValue; useEffect(() => () => c17550_2.destroy(), [initialValue]); useEffect(() => { if (searchOptions != null && searchOptions !== c17550_2.options) { c17550_2.setOptions(searchOptions); } }, [initialValue, searchOptions]); return { search: useCallback(({ query, resultTypes: resultTypes2 }) => { let r12 = c17550_2.resultTypes != null; if (r12) { const resultTypes = c17550_2.resultTypes; r12 = resultTypes2.length === resultTypes.size && resultTypes2.every((item) => resultTypes.has(item)); } if (!r12) { c17550_2.setResultTypes(resultTypes2); c17550_2.setLimit(resultTypes2.length === 1 ? 50 : 20); } c17550_2.search(query.trim() !== "" ? query : ""); }, [initialValue]), ...state }; };