Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 | 'use client'; /** * Page d'accueil de l'application AdminJO * * Cette page sert de point d'entrée principal pour l'application d'administration * des Jeux Olympiques. Elle affiche le formulaire de connexion et redirige vers * le dashboard après authentification. * * Route: / (racine de l'application) */ import { useEffect } from 'react'; import { useRouter } from 'next/navigation'; import { useAuth } from '@/contexts/authContext'; import LoginAdminForm from '@/components/connexion/loginAdminForm'; /** * Composant Home - Page d'accueil avec authentification * * @returns JSX.Element - Le formulaire de connexion ou redirection vers dashboard */ export default function Home() { const { isAuthenticated, isLoading } = useAuth(); const router = useRouter(); useEffect(() => { // Si l'utilisateur est authentifié, rediriger vers le dashboard Iif (isAuthenticated && !isLoading) { router.push('/dashboard'); } }, [isAuthenticated, isLoading, router]); // Afficher un loading pendant la vérification Iif (isLoading) { return ( <div className="min-h-screen flex items-center justify-center bg-base-200"> <div className="text-center"> <div className="loading loading-spinner loading-lg text-primary"></div> <p className="mt-4 text-gray-600">Vérification de l'authentification...</p> </div> </div> ); } Iif (!isAuthenticated) { return <LoginAdminForm />; } return ( <div className="min-h-screen flex items-center justify-center bg-base-200"> <div className="text-center"> <div className="loading loading-spinner loading-lg text-primary"></div> <p className="mt-4 text-gray-600">Redirection vers le dashboard...</p> </div> </div> ); } |