Files
discord-decomp/modules/share/useAutocompleter.tsx
T
2026-11-01 12:12:55 +02:00

46 lines
1.4 KiB
TypeScript

// 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
};
};