import { useAuthContext } from "@/contexts/AuthContext"; import { useMutation, useQueryClient } from "react-query"; import firestore from "@react-native-firebase/firestore"; import { EventData } from "@/hooks/firebase/types/eventData"; export const useCreateEvent = () => { const {user: currentUser} = useAuthContext() const queryClients = useQueryClient() return useMutation({ mutationKey: ["createEvent"], mutationFn: async (eventData: Partial) => { try { await firestore() .collection("Events") .add({...eventData, creatorId: currentUser?.uid}) } catch (e) { console.error(e) } }, onSuccess: () => { queryClients.invalidateQueries("events") } }) } export const useCreateEventFromProvider = () => { const {user: currentUser} = useAuthContext() const queryClients = useQueryClient() return useMutation({ mutationKey: ["createEventFromProvider"], mutationFn: async (eventData: Partial) => { try { const snapshot = await firestore() .collection("Events") .where("id", "==", eventData.id) .get(); if (snapshot.empty) { await firestore() .collection("Events") .add({...eventData, creatorId: currentUser?.uid}) } } catch (e) { console.error(e) } }, onSuccess: () => { queryClients.invalidateQueries("events") } }) }