refactor: no XHR for currentUser but backside

This commit is contained in:
Julien Froidefond
2025-08-25 21:47:15 +02:00
parent 5e1e06be47
commit 565fde2808
5 changed files with 45 additions and 120 deletions

View File

@@ -1,18 +1,13 @@
"use client";
import {
createContext,
useContext,
useState,
useEffect,
ReactNode,
} from "react";
import { authClient } from "@/clients";
import { createContext, useContext, useState, ReactNode } from "react";
interface UserInfo {
firstName: string;
lastName: string;
teamName: string;
teamId?: string;
uuid?: string;
}
interface UserContextType {
@@ -23,33 +18,14 @@ interface UserContextType {
const UserContext = createContext<UserContextType | undefined>(undefined);
export function UserProvider({ children }: { children: ReactNode }) {
const [userInfo, setUserInfo] = useState<UserInfo | null>(null);
const [loading, setLoading] = useState(true);
interface UserProviderProps {
children: ReactNode;
initialUserInfo: UserInfo | null;
}
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();
}, []);
export function UserProvider({ children, initialUserInfo }: UserProviderProps) {
const [userInfo, setUserInfo] = useState<UserInfo | null>(initialUserInfo);
const [loading, setLoading] = useState(false); // Plus de loading initial
return (
<UserContext.Provider value={{ userInfo, setUserInfo, loading }}>