Implement fuzzy page search using fuse.js (#86)

This commit is contained in:
Mungai Njoroge
2022-09-10 10:46:45 -04:00
committed by GitHub
parent befdf383b6
commit 5770a66d67
67 changed files with 568 additions and 558 deletions
+2
View File
@@ -5,6 +5,7 @@ import formatSeconds from "./useFormatSeconds";
import useDebouncedRef from "./useDebouncedRef";
import createSubPaths from "./useCreateSubPaths";
import { readLocalStorage, writeLocalStorage } from "./useLocalStorage";
import useFuse from "./useFuse";
export {
readLocalStorage,
@@ -15,4 +16,5 @@ export {
useVisibility,
formatSeconds,
putCommas,
useFuse,
};
+18
View File
@@ -0,0 +1,18 @@
import { useFuse } from "@vueuse/integrations/useFuse";
import { Ref } from "vue";
/**
* Fuzzy search using Fuse.js
* @param query The query to search for
* @param data The list to search in
* @param fuseOptions Fuse.js options
* @returns A ref containing the search results
*/
export default (query: string, data: any[], fuseOptions: object) => {
const { results } = useFuse(query, data, {
matchAllWhenSearchEmpty: true,
fuseOptions: { ...fuseOptions, threshold: 0.3, ignoreLocation: true },
});
return results;
};