import { getClient } from "@/api/AxiosClient"; import { useCredentialGetter } from "@/hooks/useCredentialGetter"; import { useQuery } from "@tanstack/react-query"; import { Status, Task, WorkflowRunApiResponse } from "@/api/types"; type QueryReturnType = Array; type UseQueryOptions = Omit< Parameters>[0], "queryKey" | "queryFn" >; type Props = { page?: number; statusFilters?: Array; } & UseQueryOptions; function useRunsQuery({ page = 1, statusFilters }: Props) { const credentialGetter = useCredentialGetter(); return useQuery>({ queryKey: ["runs", { statusFilters }, page], queryFn: async () => { const client = await getClient(credentialGetter); const params = new URLSearchParams(); params.append("page", String(page)); if (statusFilters) { statusFilters.forEach((status) => { params.append("status", status); }); } return client.get("/runs", { params }).then((res) => res.data); }, }); } export { useRunsQuery };