refactor: no XHR for currentUser but backside
This commit is contained in:
@@ -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 }}>
|
||||
|
||||
Reference in New Issue
Block a user