Merge branch 'claude/elastic-chaplygin'

This commit is contained in:
AI Assistant
2026-03-09 12:48:03 +02:00
+10 -10
View File
@@ -30,16 +30,7 @@ interface AuthProviderProps {
function AuthProviderInner({ children }: AuthProviderProps) { function AuthProviderInner({ children }: AuthProviderProps) {
const { data: session, status } = useSession(); const { data: session, status } = useSession();
// Show loading spinner while session is being validated // Derive user from session (all hooks must be called unconditionally)
if (status === "loading") {
return (
<div className="flex h-screen items-center justify-center">
<div className="h-8 w-8 animate-spin rounded-full border-4 border-primary border-t-transparent" />
</div>
);
}
// Use session user if available, otherwise fallback to stub in dev mode
const user: User | null = session?.user const user: User | null = session?.user
? { ? {
id: (session.user as any).id || "unknown", id: (session.user as any).id || "unknown",
@@ -79,6 +70,15 @@ function AuthProviderInner({ children }: AuthProviderProps) {
[user, hasRole, canAccessModule], [user, hasRole, canAccessModule],
); );
// Show loading spinner while session is being validated (after all hooks)
if (status === "loading") {
return (
<div className="flex h-screen items-center justify-center">
<div className="h-8 w-8 animate-spin rounded-full border-4 border-primary border-t-transparent" />
</div>
);
}
return <AuthContext.Provider value={value}>{children}</AuthContext.Provider>; return <AuthContext.Provider value={value}>{children}</AuthContext.Provider>;
} }