import {useMutation, useQueryClient} from "@tanstack/react-query"; import {UserProfile} from "@/hooks/firebase/types/profileTypes"; import functions from '@react-native-firebase/functions'; import {ProfileType, useAuthContext} from "@/contexts/AuthContext"; import {HttpsCallableResult} from "@firebase/functions"; export const useCreateSubUser = () => { const queryClient = useQueryClient() const {profileType, profileData} = useAuthContext() return useMutation({ mutationKey: ["createSubUser"], mutationFn: async ({email, ...userProfile}: { email?: string } & UserProfile) => { if (profileType === ProfileType.PARENT) { return await functions().httpsCallable("createSubUser")({ ...userProfile, email, familyId: profileData?.familyId! }) as HttpsCallableResult<{ userId: string }> } else { throw Error("Can't create sub-users as a non-parent.") } }, onSuccess: () => { queryClient.invalidateQueries({queryKey: ["getChildrenByParentId"]}) queryClient.invalidateQueries({queryKey: ["familyMembers"]}) } }); }