'use client'; import React, { useState } from 'react'; import DjangoCSRFToken from '@/components/DjangoCSRFToken'; import Logo from '@/components/Logo'; import { useRouter } from 'next/navigation'; import InputTextIcon from '@/components/InputTextIcon'; import Loader from '@/components/Loader'; // Importez le composant Loader import Button from '@/components/Button'; // Importez le composant Button import { User, KeySquare } from 'lucide-react'; // Importez directement les icônes nécessaires import { FE_USERS_NEW_PASSWORD_URL, getRedirectUrlFromRole } from '@/utils/Url'; import { login } from '@/app/actions/authAction'; import { getSession } from 'next-auth/react'; import { useCsrfToken } from '@/context/CsrfContext'; // Importez le hook useCsrfToken import logger from '@/utils/logger'; import { useEstablishment } from '@/context/EstablishmentContext'; import { useNotification } from '@/context/NotificationContext'; export default function Page() { const { initializeContextWithSession } = useEstablishment(); const [isLoading, setIsLoading] = useState(false); const router = useRouter(); const csrfToken = useCsrfToken(); // Utilisez le hook useCsrfToken const { showNotification } = useNotification(); function handleFormLogin(formData) { setIsLoading(true); login({ email: formData.get('login'), password: formData.get('password'), }) .then((result) => { logger.debug('Sign In Result', result); if (result.error) { showNotification( result.error, 'error', 'Erreur' ); setIsLoading(false); } else { // On initialise le contexte establishement avec la session getSession() .then((session) => { initializeContextWithSession(session, (role) => { const url = getRedirectUrlFromRole(role); if (url) { router.push(url); } else { showNotification( 'Type de rôle non géré', 'error', 'Erreur' ); } }); setIsLoading(false); }) .catch((error) => { logger.error( 'Erreur lors de la récupération de la session:', error ); setIsLoading(false); showNotification( 'Une erreur est survenue lors de la récupération de la session.', 'error', 'Erreur' ); }); } }) .catch((error) => { logger.error('Erreur lors de la connexion:', error); setIsLoading(false); showNotification( 'Une erreur est survenue lors de la connexion.', 'error', 'Erreur' ); }); } if (isLoading === true) { return ; // Affichez le composant Loader } else { return ( <>

Authentification

{ e.preventDefault(); handleFormLogin(new FormData(e.target)); }} >
); } }