UNPKG

tqf

Version:

React Query hooks for Firebase.

65 lines (60 loc) 1.55 kB
import { QueryKey, useMutation, UseMutationOptions, UseMutationResult, useQuery, UseQueryOptions, UseQueryResult, } from "@tanstack/react-query"; import { Functions, httpsCallable, HttpsCallableOptions, } from "firebase/functions"; export function useFunctionsQuery< RequestData = any, ResponseData = unknown, ModifiedData = ResponseData >( key: QueryKey, functions: Functions, trigger: string, data?: RequestData | null, options?: HttpsCallableOptions, useQueryOptions?: Omit< UseQueryOptions<ResponseData, Error, ModifiedData>, "queryFn" > ): UseQueryResult<ModifiedData, Error> { return useQuery<ResponseData, Error, ModifiedData>({ ...useQueryOptions, queryKey: useQueryOptions?.queryKey ?? key, async queryFn() { const response = await httpsCallable<RequestData, ResponseData>( functions, trigger, options )(data); return response.data; }, }); } export function useFunctionsCall<RequestData = any, ResponseData = unknown>( functions: Functions, trigger: string, options?: HttpsCallableOptions, useMutationOptions?: UseMutationOptions<ResponseData, Error, RequestData> ): UseMutationResult<ResponseData, Error, RequestData> { return useMutation<ResponseData, Error, RequestData>({ ...useMutationOptions, mutationFn: async (data) => { const response = await httpsCallable<RequestData, ResponseData>( functions, trigger, options )(data); return response.data; }, }); }