mirror of
				https://github.com/CorentinTh/it-tools.git
				synced 2025-11-03 21:43:21 +00:00 
			
		
		
		
	refactor(search-bar): improved tool fuzzy search
This commit is contained in:
		
							
								
								
									
										23
									
								
								src/composable/fuzzySearch.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								src/composable/fuzzySearch.ts
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,23 @@
 | 
			
		||||
import { get, type MaybeRef } from '@vueuse/core';
 | 
			
		||||
import Fuse from 'fuse.js';
 | 
			
		||||
import { computed } from 'vue';
 | 
			
		||||
 | 
			
		||||
export { useFuzzySearch };
 | 
			
		||||
 | 
			
		||||
function useFuzzySearch<Data>({
 | 
			
		||||
  search,
 | 
			
		||||
  data,
 | 
			
		||||
  options = {},
 | 
			
		||||
}: {
 | 
			
		||||
  search: MaybeRef<string>;
 | 
			
		||||
  data: Data[];
 | 
			
		||||
  options?: Fuse.IFuseOptions<Data>;
 | 
			
		||||
}) {
 | 
			
		||||
  const fuse = new Fuse(data, options);
 | 
			
		||||
 | 
			
		||||
  const searchResult = computed(() => {
 | 
			
		||||
    return fuse.search(get(search)).map(({ item }) => item);
 | 
			
		||||
  });
 | 
			
		||||
 | 
			
		||||
  return { searchResult };
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user