import React, { createContext, useContext, useEffect, useState } from "react"; import auth, { FirebaseAuthTypes } from "@react-native-firebase/auth"; import { useRouter } from "expo-router"; interface LoginState { tempEmail?: string; passwordReset?: boolean } const AuthContext = createContext< [ FirebaseAuthTypes.User | null, LoginState | null, React.Dispatch> | null, boolean ] >([null, null, null, false]); export default function AuthProvider(props: { children: React.ReactNode }) { const [user, setUser] = useState(null); const [init, setInit] = useState(true); const [loginstate, setLogInState] = useState(null); useEffect(() => { const subscriber = auth().onAuthStateChanged((u) => { setUser(u); if (init) { setInit(false); } return subscriber; }); }, []); if (init) return null; return ( {props.children} ); } export function useAuthState() { return useContext(AuthContext); }