import { createContext, useCallback, useContext, useMemo, useState } from 'react'; const AuthContext = createContext(null); export function AuthProvider({ children }) { const [user, setUser] = useState(null); const signIn = useCallback(async (token, profile) => { setUser({ token, profile }); }, []); const signOut = useCallback(() => { setUser(null); }, []); const value = useMemo(() => ({ user, signIn, signOut }), [user, signIn, signOut]); return {children}; } export function useAuth() { const ctx = useContext(AuthContext); if (!ctx) { throw new Error('useAuth must be used within an AuthProvider'); } return ctx; }