"use client"; import { createContext, useContext, useState, useEffect, ReactNode, } from "react"; import { authClient } from "@/clients"; interface UserInfo { firstName: string; lastName: string; teamName: string; } interface UserContextType { userInfo: UserInfo | null; setUserInfo: (userInfo: UserInfo | null) => void; loading: boolean; } const UserContext = createContext(undefined); export function UserProvider({ children }: { children: ReactNode }) { const [userInfo, setUserInfo] = useState(null); const [loading, setLoading] = useState(true); useEffect(() => { const fetchUserInfo = async () => { try { // Récupérer les informations utilisateur depuis l'API const user = await authClient.getCurrentUser(); if (user) { setUserInfo({ firstName: user.firstName, lastName: user.lastName, teamName: user.teamName || "Équipe non définie", }); } } catch (error) { console.error("Failed to fetch user info:", error); // En cas d'erreur, on considère que l'utilisateur n'est pas connecté setUserInfo(null); } finally { setLoading(false); } }; fetchUserInfo(); }, []); return ( {children} ); } export function useUser() { const context = useContext(UserContext); if (context === undefined) { throw new Error("useUser must be used within a UserProvider"); } return context; }