'use client' // src/app/pages/subscribe.js import React, { useState, useEffect } from 'react'; import DjangoCSRFToken from '@/components/DjangoCSRFToken' import Logo from '@/components/Logo'; import { useSearchParams, 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 Popup from '@/components/Popup'; // Importez le composant Popup import { User, KeySquare } from 'lucide-react'; // Importez directement les icônes nécessaires import { FE_USERS_LOGIN_URL } from '@/utils/Url'; import useCsrfToken from '@/hooks/useCsrfToken'; import { subscribe } from '@/app/lib/authAction'; const useFakeData = process.env.NEXT_PUBLIC_USE_FAKE_DATA === 'true'; export default function Page() { const searchParams = useSearchParams(); const [errorMessage, setErrorMessage] = useState(""); const [userFieldError,setUserFieldError] = useState("") const [password1FieldError,setPassword1FieldError] = useState("") const [password2FieldError,setPassword2FieldError] = useState("") const [isLoading, setIsLoading] = useState(false); const [popupVisible, setPopupVisible] = useState(false); const [popupMessage, setPopupMessage] = useState(""); const router = useRouter(); const csrfToken = useCsrfToken(); useEffect(() => { if (useFakeData) { setIsLoading(true); // Simuler une réponse réussie const data = { errorFields: {}, errorMessage: "" }; setUserFieldError("") setPassword1FieldError("") setPassword2FieldError("") setErrorMessage("") setIsLoading(false); } }, []); function isOK(data) { return data.errorMessage === "" } function subscribeFormSubmit(formData) { if (useFakeData) { // Simuler une réponse réussie const data = { errorFields: {}, errorMessage: "" }; setUserFieldError("") setPassword1FieldError("") setPassword2FieldError("") setErrorMessage("") if(isOK(data)){ setPopupMessage("Votre compte a été créé avec succès"); setPopupVisible(true); } else { if(data.errorMessage){ setErrorMessage(data.errorMessage); } if(data.errorFields){ setUserFieldError(data.errorFields.email) setPassword1FieldError(data.errorFields.password1) setPassword2FieldError(data.errorFields.password2) } } } else { const data ={ email: formData.get('login'), password1: formData.get('password1'), password2: formData.get('password2'), } subscribe(data,csrfToken).then(data => { console.log('Success:', data); setUserFieldError("") setPassword1FieldError("") setPassword2FieldError("") setErrorMessage("") if(isOK(data)){ setPopupMessage(data.message); setPopupVisible(true); } else { if(data.errorMessage){ setErrorMessage(data.errorMessage); } if(data.errorFields){ setUserFieldError(data.errorFields.email) setPassword1FieldError(data.errorFields.password1) setPassword2FieldError(data.errorFields.password2) } } }) .catch(error => { console.error('Error fetching data:', error); error = error.errorMessage; console.log(error); }); } } if (isLoading === true) { return // Affichez le composant Loader } else { return <>

Nouveau profil

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

{errorMessage}


{ setPopupVisible(false); router.push(`${FE_USERS_LOGIN_URL}`); }} onCancel={() => setPopupVisible(false)} /> } }