/* eslint-disable react-refresh/only-export-components */ import { createContext, useContext, useEffect, useState } from 'react' import { supabase } from '@/lib/supabase' const AuthContext = createContext(null) export function AuthProvider({ children }) { const [user, setUser] = useState(null) const [profile, setProfile] = useState(null) const [loading, setLoading] = useState(true) useEffect(() => { supabase.auth.getSession().then(({ data: { session } }) => { if (session?.user) { setUser(session.user) fetchProfile(session.user.id) } setLoading(false) }) const { data: { subscription } } = supabase.auth.onAuthStateChange((_event, session) => { if (session?.user) { setUser(session.user) fetchProfile(session.user.id) } else { setUser(null) setProfile(null) } }) return () => subscription.unsubscribe() }, []) async function fetchProfile(userId) { const { data } = await supabase .from('members') .select('*') .eq('id', userId) .single() setProfile(data) } async function signIn(email, password) { return supabase.auth.signInWithPassword({ email, password }) } async function signOut() { await supabase.auth.signOut() setUser(null) setProfile(null) } return ( {children} ) } export const useAuth = () => useContext(AuthContext)