Add timeout to prevent infinite loading in AuthContext

cgen-7304cc13c3ae495c975e04fda449cf3b
This commit is contained in:
Builder.io 2025-08-16 04:21:23 +00:00
parent 03ca1fa22f
commit cce06096d8

View file

@ -44,18 +44,27 @@ export const AuthProvider: React.FC<{ children: React.ReactNode }> = ({
const [loading, setLoading] = useState(true); const [loading, setLoading] = useState(true);
useEffect(() => { useEffect(() => {
// Add timeout to ensure loading doesn't get stuck
const loadingTimeout = setTimeout(() => {
console.log("Auth loading timeout - forcing loading to false");
setLoading(false);
}, 5000);
// Get initial session // Get initial session
supabase.auth supabase.auth
.getSession() .getSession()
.then(({ data: { session } }) => { .then(({ data: { session } }) => {
clearTimeout(loadingTimeout);
setSession(session); setSession(session);
setUser(session?.user ?? null); setUser(session?.user ?? null);
if (session?.user) { if (session?.user) {
fetchUserProfile(session.user.id); fetchUserProfile(session.user.id);
} else {
setLoading(false);
} }
setLoading(false);
}) })
.catch((error) => { .catch((error) => {
clearTimeout(loadingTimeout);
console.error("Error getting session:", error); console.error("Error getting session:", error);
setLoading(false); setLoading(false);
}); });