import { useState } from 'react'; import { Link, useNavigate, useSearchParams } from 'react-router-dom'; import { Lock, CheckCircle, AlertCircle, Eye, EyeOff } from 'lucide-react'; import Button from '../components/ui/Button'; import Input from '../components/ui/Input'; import Card from '../components/ui/Card'; import axios from 'axios'; export default function PasswordResetConfirm() { const [searchParams] = useSearchParams(); const navigate = useNavigate(); const token = searchParams.get('token') || ''; const [password, setPassword] = useState(''); const [passwordConfirm, setPasswordConfirm] = useState(''); const [showPassword, setShowPassword] = useState(false); const [isLoading, setIsLoading] = useState(false); const [error, setError] = useState(''); const [success, setSuccess] = useState(false); const handleSubmit = async (e: React.FormEvent) => { e.preventDefault(); setError(''); if (!token) { setError('Ungültiger Link: Kein Token enthalten.'); return; } if (password.length < 6) { setError('Das Passwort muss mindestens 6 Zeichen lang sein.'); return; } if (password !== passwordConfirm) { setError('Die Passwörter stimmen nicht überein.'); return; } setIsLoading(true); try { await axios.post('/api/auth/password-reset/confirm', { token, password }); setSuccess(true); setTimeout(() => navigate('/login'), 3000); } catch (err: any) { setError(err.response?.data?.error || 'Fehler beim Zurücksetzen. Bitte versuche es erneut.'); } finally { setIsLoading(false); } }; if (!token) { return (
Dieser Reset-Link ist unvollständig. Bitte fordere einen neuen an.
Dein Passwort wurde erfolgreich zurückgesetzt. Du wirst in Kürze zum Login weitergeleitet.
Vergib ein neues Passwort für deinen Account.