Merge branch 'claude/elastic-chaplygin'
This commit is contained in:
@@ -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>;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user