This commit is contained in:
Philip Cesar Garay
2025-07-31 21:25:33 +08:00
parent 5cfbc81e3a
commit 84fc719a10
307 changed files with 46470 additions and 0 deletions
+51
View File
@@ -0,0 +1,51 @@
import { useEffect, useState } from "reactn";
import algoliasearch from "algoliasearch/lite";
export default ({
query = "",
options = {},
algoliaObject: { index = null, projectID, publicKey },
documentID = "id",
}) => {
const [result, setResult] = useState([]);
const [indexAlgolia, setIndexAlgolia] = useState(null);
useEffect(() => {
if (!indexAlgolia) {
setIndexAlgolia(algoliasearch(projectID, publicKey).initIndex(index));
}
return () => {
setIndexAlgolia(null);
};
}, [index]);
useEffect(() => {
if (indexAlgolia) {
getSearchResult();
}
}, [query, indexAlgolia]);
const getSearchResult = async () => {
try {
if (query.length > 1) {
const { hits } = await indexAlgolia.search(query, options);
setResult(
hits.map((itemHit) => ({
...itemHit,
[documentID]: itemHit.objectID,
}))
);
} else {
setResult([]);
}
} catch (e) {
setResult([]);
console.log("ALGOLIA" + e);
}
};
return result;
};