diff --git a/frontend/app/api/queries/useGetAllFiltersQuery.ts b/frontend/app/api/queries/useGetAllFiltersQuery.ts new file mode 100644 index 00000000..5264d981 --- /dev/null +++ b/frontend/app/api/queries/useGetAllFiltersQuery.ts @@ -0,0 +1,36 @@ +import { + type UseQueryOptions, + useQuery, + useQueryClient, +} from "@tanstack/react-query"; +import type { KnowledgeFilter } from "./useGetFiltersSearchQuery"; + +export const useGetAllFiltersQuery = ( + options?: Omit, "queryKey" | "queryFn">, +) => { + const queryClient = useQueryClient(); + + async function getAllFilters(): Promise { + const response = await fetch("/api/knowledge-filter/search", { + method: "POST", + headers: { "Content-Type": "application/json" }, + body: JSON.stringify({ query: "", limit: 1000 }), // Fetch all filters + }); + + const json = await response.json(); + if (!response.ok || !json.success) { + // ensure we always return a KnowledgeFilter[] to satisfy the return type + return []; + } + return (json.filters || []) as KnowledgeFilter[]; + } + + return useQuery( + { + queryKey: ["knowledge-filters", "all"], + queryFn: getAllFilters, + ...options, + }, + queryClient, + ); +};