From a05de1b3333f8a9c328815d61526c57503f94731 Mon Sep 17 00:00:00 2001 From: Dejan Date: Fri, 11 Oct 2024 16:08:39 +0200 Subject: [PATCH] Editing calendar events - Fixed an issue with the profile data not being read from db becaue of the local state not being updated instantly --- contexts/AuthContext.tsx | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/contexts/AuthContext.tsx b/contexts/AuthContext.tsx index a679f90..9795114 100644 --- a/contexts/AuthContext.tsx +++ b/contexts/AuthContext.tsx @@ -30,29 +30,28 @@ export const AuthContextProvider: FC<{ children: ReactNode }> = ({children}) => const {replace} = useRouter() const ready = !initializing - const onAuthStateChanged = async (user: FirebaseAuthTypes.User | null) => { - setUser(user); + const onAuthStateChangedHandler = async (authUser: FirebaseAuthTypes.User | null) => { + setUser(authUser); - if (user) { - await refreshProfileData(); + if (authUser) { + await refreshProfileData(authUser); } if (initializing) setInitializing(false); } - const refreshProfileData = async () => { - if (user) { + const refreshProfileData = async (authUser: FirebaseAuthTypes.User) => { + if (authUser) { try { const documentSnapshot = await firestore() .collection("Profiles") - .doc(user.uid) + .doc(authUser.uid) .get(); if (documentSnapshot.exists) { setProfileType(documentSnapshot.data()?.userType); setProfileData(documentSnapshot.data() as UserProfile); } } catch (error) { - console.error("Error fetching user profile data:", error); setProfileType(undefined); setProfileData(undefined); } @@ -60,7 +59,7 @@ export const AuthContextProvider: FC<{ children: ReactNode }> = ({children}) => }; useEffect(() => { - const subscriber = auth().onAuthStateChanged(onAuthStateChanged); + const subscriber = auth().onAuthStateChanged(onAuthStateChangedHandler); return subscriber; }, []);