import { createContext, use, useCallback, useState, type PropsWithChildren } from 'react'; export type User = { id: string; name: string; }; export type AuthProviderProps = PropsWithChildren; export type AuthContextType = { setUser: (user: User) => void; logOut: () => void; user: User | null; }; const AuthContext = createContext(null); export const AuthProvider: React.FC = ({ children }) => { const [user, setUserState] = useState(null); const setUser = useCallback((user: User) => { setUserState(user); }, []); const logout = useCallback(() => { setUserState(null); }, []); return ( {children} ); }; export function useAuth() { const context = use(AuthContext); if (!context) { throw new Error('useAuth must be used within a AuthProvider'); } return context; }