attachment + download attach + suggestion
This commit is contained in:
@@ -0,0 +1,40 @@
|
||||
import { useState } from "react";
|
||||
import { useQuery } from "@tanstack/react-query";
|
||||
import { EmailSuggestionsService } from "@/services/EmailSuggestionsService";
|
||||
|
||||
export const useEmailSuggestions = () => {
|
||||
const [debouncedQuery, setDebouncedQuery] = useState("");
|
||||
|
||||
const { data: suggestionsData, isLoading, error } = useQuery({
|
||||
queryKey: ["emailSuggestions", debouncedQuery],
|
||||
queryFn: () =>
|
||||
EmailSuggestionsService.getSuggestions({
|
||||
query: debouncedQuery,
|
||||
limit: 5,
|
||||
}),
|
||||
enabled: debouncedQuery.length >= 2,
|
||||
staleTime: 1000 * 60 * 5, // 5 minutes
|
||||
});
|
||||
|
||||
if (error) {
|
||||
console.error("🔥 Query error:", error);
|
||||
}
|
||||
|
||||
const searchSuggestions = (query: string) => {
|
||||
// Debounce the actual search
|
||||
const timeoutId = setTimeout(() => {
|
||||
setDebouncedQuery(query);
|
||||
}, 300);
|
||||
|
||||
return () => clearTimeout(timeoutId);
|
||||
};
|
||||
|
||||
const suggestions = suggestionsData?.suggestions || [];
|
||||
|
||||
return {
|
||||
suggestions,
|
||||
searchSuggestions,
|
||||
isLoading,
|
||||
hasResults: suggestions.length > 0,
|
||||
};
|
||||
};
|
||||
Reference in New Issue
Block a user