import {useMutation} from "@tanstack/react-query";
import functions, {FirebaseFunctionsTypes} from '@react-native-firebase/functions';
import auth from "@react-native-firebase/auth";
import {useAuthContext} from "@/contexts/AuthContext";

export const useLoginWithQrCode = () => {
    const {setRedirectOverride} = useAuthContext()

    return useMutation({
        mutationKey: ["loginWithQrCode"],
        mutationFn: async ({userId}: { userId: string }) => {
            try {
                setRedirectOverride(true)
                const res = await functions().httpsCallable("generateCustomToken")({userId}) as FirebaseFunctionsTypes.HttpsCallableResult<{
                    token: string
                }>
                console.log(res)
                await auth().signInWithCustomToken(res?.data?.token)
            } catch (e) {
                console.error(e)
                throw Error("Failed to login with QR code.")
            }
        },
    });
}