'use client'; import { useState, useEffect, Suspense } from 'react'; import { useSearchParams, useRouter } from 'next/navigation'; import Link from 'next/link'; import Image from 'next/image'; import { resetPassword } from '@/lib/api/auth'; function ResetPasswordContent() { const searchParams = useSearchParams(); const router = useRouter(); const [token, setToken] = useState(''); const [password, setPassword] = useState(''); const [confirmPassword, setConfirmPassword] = useState(''); const [success, setSuccess] = useState(false); const [error, setError] = useState(''); const [loading, setLoading] = useState(false); const [tokenError, setTokenError] = useState(false); useEffect(() => { const tokenFromUrl = searchParams.get('token'); if (tokenFromUrl) { setToken(tokenFromUrl); } else { setTokenError(true); } }, [searchParams]); const handleSubmit = async (e: React.FormEvent) => { e.preventDefault(); setError(''); if (password !== confirmPassword) { setError('Les mots de passe ne correspondent pas'); return; } if (password.length < 12) { setError('Le mot de passe doit contenir au moins 12 caractères'); return; } setLoading(true); try { await resetPassword(token, password); setSuccess(true); setTimeout(() => router.push('/login'), 3000); } catch (err: any) { setError(err.message || 'Le lien de réinitialisation est invalide ou expiré.'); } finally { setLoading(false); } }; return (
{/* Left Side - Form */}
{/* Logo */}
Xpeditis
{tokenError ? ( <>

Lien invalide

Ce lien de réinitialisation est invalide. Veuillez faire une nouvelle demande.

Demander un nouveau lien ) : success ? ( <>

Mot de passe réinitialisé !

Votre mot de passe a été modifié avec succès. Vous allez être redirigé vers la page de connexion...

Se connecter maintenant ) : ( <> {/* Header */}

Nouveau mot de passe

Choisissez un nouveau mot de passe sécurisé pour votre compte.

{/* Error Message */} {error && (

{error}

)} {/* Form */}
setPassword(e.target.value)} className="input w-full" placeholder="••••••••••••" autoComplete="new-password" disabled={loading} />

Au moins 12 caractères

setConfirmPassword(e.target.value)} className="input w-full" placeholder="••••••••••••" autoComplete="new-password" disabled={loading} />
Retour à la connexion
)} {/* Footer Links */}
Contactez-nous Confidentialité Conditions
{/* Right Side - Brand */}

Votre sécurité, notre priorité

Choisissez un mot de passe fort pour protéger votre compte et vos données.

{[ 'Au moins 12 caractères', 'Mélangez lettres, chiffres et symboles', 'Évitez les mots du dictionnaire', 'N\'utilisez pas le même mot de passe ailleurs', ].map((tip) => (

{tip}

))}
); } export default function ResetPasswordPage() { return ( ); }