mirror of
https://github.com/domfelipe/mika-agent-assist.git
synced 2026-08-07 12:36:50 +00:00
34 lines
909 B
TypeScript
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;
|
|
}
|