mika-agent-assist/src/hooks/use-auth.ts
gpt-engineer-app[bot] fa8bee0e36 Changes
Co-authored-by: domfelipe <53182096+domfelipe@users.noreply.github.com>
2026-04-17 17:02:12 +00:00

34 lines
909 B
TypeScript

"use client";
import { useEffect, useState } from "react";
import type { Session, User } from "@supabase/supabase-js";
import { supabase } from "@/integrations/supabase/client";
interface AuthState {
user: User | null;
session: Session | null;
loading: boolean;
}
export function useAuth(): AuthState {
const [state, setState] = useState<AuthState>({
user: null,
session: null,
loading: true,
});
useEffect(() => {
// CRITICAL: subscribe BEFORE getSession (avoid missed events)
const { data: { subscription } } = supabase.auth.onAuthStateChange((_event, session) => {
setState({ user: session?.user ?? null, session, loading: false });
});
supabase.auth.getSession().then(({ data: { session } }) => {
setState({ user: session?.user ?? null, session, loading: false });
});
return () => subscription.unsubscribe();
}, []);
return state;
}