'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'; import { FE_USERS_LOGIN_URL } from '@/utils/Url'; import { KeySquare } from 'lucide-react'; // Importez directement les icônes nécessaires import { useCsrfToken } from '@/context/CsrfContext'; import { getResetPassword, resetPassword } from '@/app/actions/authAction'; import logger from '@/utils/logger'; const useFakeData = process.env.NEXT_PUBLIC_USE_FAKE_DATA === 'true'; export default function Page() { const searchParams = useSearchParams(); const uuid = searchParams.get('uuid'); const [errorMessage, setErrorMessage] = useState(""); const [password1FieldError,setPassword1FieldError] = useState("") const [password2FieldError,setPassword2FieldError] = useState("") const [isLoading, setIsLoading] = useState(true); const [popupVisible, setPopupVisible] = useState(false); const [popupMessage, setPopupMessage] = useState(""); const router = useRouter(); const csrfToken = useCsrfToken(); useEffect(() => { if (useFakeData) { setTimeout(() => { setIsLoading(false); }, 1000); } else { getResetPassword(uuid) .then(data => { logger.debug('Success:', data); setIsLoading(true); if(data.errorFields){ setPassword1FieldError(data.errorFields.password1) setPassword2FieldError(data.errorFields.password2) } if(data.errorMessage){ setErrorMessage(data.errorMessage) } setIsLoading(false); }) .catch(error => { logger.error('Error fetching data:', error); }); } }, []); function validate(formData) { if (useFakeData) { setTimeout(() => { setPopupMessage("Mot de passe réinitialisé avec succès"); setPopupVisible(true); }, 1000); } else { const data = { password1: formData.get('password1'), password2: formData.get('password2'), } resetPassword(uuid,data,csrfToken) .then(data => { logger.debug('Success:', data); setPassword1FieldError("") setPassword2FieldError("") setErrorMessage("") if(data.errorMessage === ""){ setPopupMessage(data.message); setPopupVisible(true); } else { if(data.errorMessage){ setErrorMessage(data.errorMessage); } if(data.errorFields){ setPassword1FieldError(data.errorFields.password1) setPassword2FieldError(data.errorFields.password2) } } }) .catch(error => { logger.error('Error fetching data:', error); error = error.errorMessage; logger.debug(error); }); } } if (isLoading === true) { return // Affichez le composant Loader } else { return <> { setPopupVisible(false); router.push(`${FE_USERS_LOGIN_URL}`); }} onCancel={() => setPopupVisible(false)} />

Réinitialisation du mot de passe

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

} }