'use client'; import { useEffect, useState } from 'react'; import { useSearchParams } from 'next/navigation'; import { useI18n } from '../../components/I18nProvider'; export default function ResetPasswordPage() { const { t } = useI18n(); const searchParams = useSearchParams(); const [password, setPassword] = useState(''); const [token, setToken] = useState(''); const [message, setMessage] = useState(null); const [error, setError] = useState(null); const [loading, setLoading] = useState(false); useEffect(() => { const tok = searchParams.get('token') || ''; setToken(tok); }, [searchParams]); async function onSubmit(e: React.FormEvent) { e.preventDefault(); setMessage(null); setError(null); if (!token) { setError(t('resetMissingToken')); return; } setLoading(true); try { const res = await fetch('/api/auth/reset', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ token, password }), }); const data = await res.json(); if (!res.ok) { setError(data.error || t('resetError')); } else { setMessage(t('resetSuccess')); setPassword(''); } } catch (err) { setError(t('resetError')); } finally { setLoading(false); } } return (

{t('resetTitle')}

{t('resetLead')}

{message ?

{message}

: null} {error ?

{error}

: null} {!token ?

{t('resetMissingToken')}

: null}
); }