'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'; import Button from '@/components/Button'; import { FE_USERS_LOGIN_URL } from '@/utils/Url'; import { KeySquare } from 'lucide-react'; import { useCsrfToken } from '@/context/CsrfContext'; import { resetPassword } from '@/app/actions/authAction'; import logger from '@/utils/logger'; import { useNotification } from '@/context/NotificationContext'; export default function Page() { const searchParams = useSearchParams(); const { showNotification } = useNotification(); const uuid = searchParams.get('uuid'); const [isLoading, setIsLoading] = useState(false); const router = useRouter(); const csrfToken = useCsrfToken(); function validate(formData) { const data = { password1: formData.get('password1'), password2: formData.get('password2'), }; setIsLoading(true); resetPassword(uuid, data, csrfToken) .then((data) => { if (data.message !== '') { logger.debug('Success:', data); showNotification( data.message, 'success', 'Succès' ); router.push(`${FE_USERS_LOGIN_URL}`); } else { if (data.errorMessage) { showNotification( data.errorMessage, 'error', 'Erreur' ); } else if (data.errorFields) { showNotification( data.errorFields.password1 || data.errorFields.password2, 'error', 'Erreur' ); } } setIsLoading(false); }) .catch((error) => { logger.error('Error fetching data:', error); error = error.errorMessage; logger.debug(error); setIsLoading(false); }); } if (isLoading === true) { return ; } else { return ( <>

Réinitialisation du mot de passe

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

); } }