251208:0010 Backend & Frontend Debug
Some checks failed
Spec Validation / validate-markdown (push) Has been cancelled
Spec Validation / validate-diagrams (push) Has been cancelled
Spec Validation / check-todos (push) Has been cancelled

This commit is contained in:
2025-12-08 00:10:37 +07:00
parent 32d820ea6b
commit dcd126d704
99 changed files with 2775 additions and 1480 deletions

View File

@@ -0,0 +1,27 @@
import { useQuery } from '@tanstack/react-query';
import { searchService } from '@/lib/services/search.service';
import { SearchQueryDto } from '@/types/dto/search/search-query.dto';
export const searchKeys = {
all: ['search'] as const,
results: (query: SearchQueryDto) => [...searchKeys.all, 'results', query] as const,
suggestions: (query: string) => [...searchKeys.all, 'suggestions', query] as const,
};
export function useSearch(query: SearchQueryDto) {
return useQuery({
queryKey: searchKeys.results(query),
queryFn: () => searchService.search(query),
enabled: !!query.q || Object.keys(query).length > 0,
placeholderData: (previousData) => previousData,
});
}
export function useSearchSuggestions(query: string) {
return useQuery({
queryKey: searchKeys.suggestions(query),
queryFn: () => searchService.suggest(query),
enabled: query.length > 2,
staleTime: 60 * 1000, // Cache suggestions for 1 minute
});
}