import { User as FirebaseUser } from "firebase/auth"; import { createContext, ReactNode, useContext, useMemo, useState } from "react"; type UserContextType = { user: FirebaseUser | null; role: string | null; setUser: (user: FirebaseUser | null) => void; setRole: (role: string | null) => void; }; const UserContext = createContext(null); type UserProviderProps = { children: ReactNode; }; export const UserProvider = ({ children }: UserProviderProps) => { const [user, setUser] = useState(null); const [role, setRole] = useState(null); const value = useMemo( () => ({ user, role, setUser, setRole }), [user, role] ); return {children}; }; export const useUser = () => { const context = useContext(UserContext); if (!context) { throw new Error("useUser doit ĂȘtre utilisĂ© dans "); } return context; };