mirror of
https://github.com/pacnpal/thrilltrack-explorer.git
synced 2025-12-22 19:11:12 -05:00
Fix auth loading state after logout
This commit is contained in:
@@ -181,11 +181,20 @@ function AuthProviderComponent({ children }: { children: React.ReactNode }) {
|
|||||||
setSession(session);
|
setSession(session);
|
||||||
setUser(session.user);
|
setUser(session.user);
|
||||||
sessionVerifiedRef.current = true;
|
sessionVerifiedRef.current = true;
|
||||||
} else if (event === 'INITIAL_SESSION' && session) {
|
} else if (event === 'INITIAL_SESSION') {
|
||||||
console.log('[Auth] INITIAL_SESSION detected, setting session and user');
|
if (session) {
|
||||||
setSession(session);
|
console.log('[Auth] INITIAL_SESSION detected with session, setting user');
|
||||||
setUser(session.user);
|
setSession(session);
|
||||||
sessionVerifiedRef.current = true;
|
setUser(session.user);
|
||||||
|
sessionVerifiedRef.current = true;
|
||||||
|
} else {
|
||||||
|
console.log('[Auth] INITIAL_SESSION detected with NO session - user not logged in');
|
||||||
|
setSession(null);
|
||||||
|
setUser(null);
|
||||||
|
setProfile(null);
|
||||||
|
sessionVerifiedRef.current = false;
|
||||||
|
setLoading(false);
|
||||||
|
}
|
||||||
} else if (event === 'SIGNED_OUT') {
|
} else if (event === 'SIGNED_OUT') {
|
||||||
console.log('[Auth] SIGNED_OUT detected, clearing session');
|
console.log('[Auth] SIGNED_OUT detected, clearing session');
|
||||||
setSession(null);
|
setSession(null);
|
||||||
@@ -272,7 +281,7 @@ function AuthProviderComponent({ children }: { children: React.ReactNode }) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Defer profile fetch to avoid deadlock
|
// Defer profile fetch to avoid deadlock
|
||||||
const shouldWaitForProfile = event === 'SIGNED_IN' || event === 'INITIAL_SESSION';
|
const shouldWaitForProfile = (event === 'SIGNED_IN' || event === 'INITIAL_SESSION') && session !== null;
|
||||||
console.log('[Auth] Profile fetch deferred, shouldWaitForProfile:', shouldWaitForProfile, 'event:', event);
|
console.log('[Auth] Profile fetch deferred, shouldWaitForProfile:', shouldWaitForProfile, 'event:', event);
|
||||||
profileFetchTimeoutRef.current = setTimeout(() => {
|
profileFetchTimeoutRef.current = setTimeout(() => {
|
||||||
if (!isMountedRef.current) return;
|
if (!isMountedRef.current) return;
|
||||||
@@ -287,6 +296,11 @@ function AuthProviderComponent({ children }: { children: React.ReactNode }) {
|
|||||||
} else {
|
} else {
|
||||||
if (isMountedRef.current) {
|
if (isMountedRef.current) {
|
||||||
setProfile(null);
|
setProfile(null);
|
||||||
|
// If no session and this is an init event, resolve loading immediately
|
||||||
|
if (event === 'INITIAL_SESSION' || event === 'SIGNED_OUT') {
|
||||||
|
console.log('[Auth] No session for event:', event, '- setting loading to false');
|
||||||
|
setLoading(false);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user