"use client"; import { useState, useEffect } from "react"; import { useRouter } from "next/navigation"; import { LoginForm, RegisterForm } from "./index"; import { authClient } from "@/clients"; import { useToast } from "@/hooks/use-toast"; import { UserProfile } from "@/lib/types"; interface AuthWrapperProps { teams: any[]; initialUser?: UserProfile | null; } export function AuthWrapper({ teams, initialUser }: AuthWrapperProps) { const [isLogin, setIsLogin] = useState(true); const [loading, setLoading] = useState(false); const [error, setError] = useState(null); const router = useRouter(); const { toast } = useToast(); // Rediriger si l'utilisateur est déjà connecté useEffect(() => { // Temporairement désactivé pour éviter la boucle // if (initialUser) { // router.push("/"); // } }, [initialUser, router]); const handleLogin = async (email: string, password: string) => { setLoading(true); setError(null); try { const response = await authClient.login({ email, password }); toast({ title: "Connexion réussie", description: response.message, }); // Rediriger vers l'accueil après connexion router.push("/"); } catch (error: any) { console.error("Login failed:", error); const errorMessage = error.response?.data?.error || "Erreur de connexion"; setError(errorMessage); toast({ title: "Erreur de connexion", description: errorMessage, variant: "destructive", }); } finally { setLoading(false); } }; const handleRegister = async (data: { firstName: string; lastName: string; email: string; password: string; teamId: string; }) => { setLoading(true); setError(null); try { const response = await authClient.register(data); toast({ title: "Compte créé", description: response.message, }); // Basculer vers le login après inscription réussie setIsLogin(true); } catch (error: any) { console.error("Register failed:", error); const errorMessage = error.response?.data?.error || "Erreur lors de la création du compte"; setError(errorMessage); toast({ title: "Erreur d'inscription", description: errorMessage, variant: "destructive", }); } finally { setLoading(false); } }; const handleLogout = async () => { try { await authClient.logout(); // Rediriger vers la page de login après déconnexion window.location.href = "/login"; } catch (error) { console.error("Logout failed:", error); // En cas d'erreur, forcer le rechargement pour nettoyer l'état window.location.reload(); } }; // Si l'utilisateur est déjà connecté, afficher un message au lieu de rediriger if (initialUser) { return (
PeakSkills

Vous êtes déjà connecté

Bonjour {initialUser.firstName} {initialUser.lastName}

); } if (isLogin) { return ( setIsLogin(false)} loading={loading} error={error} /> ); } return ( setIsLogin(true)} loading={loading} error={error} /> ); }