'use client'
import { useState, Suspense } from 'react'
import { useRouter, useSearchParams } from 'next/navigation'
import Link from 'next/link'
import { Button } from '@/components/ui/button'
import { Input } from '@/components/ui/input'
import { Label } from '@/components/ui/label'
import { ArrowLeft, Loader2, CheckCircle, Lock } from 'lucide-react'
import { LogoRound } from '@/components/ui/logo'
export default function ResetPasswordPage() {
return (
}>
)
}
function ResetPasswordForm() {
const searchParams = useSearchParams()
const router = useRouter()
const token = searchParams.get('token')
const [password, setPassword] = useState('')
const [confirmPassword, setConfirmPassword] = useState('')
const [isLoading, setIsLoading] = useState(false)
const [success, setSuccess] = useState(false)
const [error, setError] = useState('')
const handleSubmit = async (e: React.FormEvent) => {
e.preventDefault()
setError('')
if (password.length < 8) {
setError('Passwort muss mindestens 8 Zeichen lang sein.')
return
}
if (password !== confirmPassword) {
setError('Passwörter stimmen nicht überein.')
return
}
setIsLoading(true)
try {
const res = await fetch('/api/auth/reset-password', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ token, password }),
})
const data = await res.json()
if (res.ok && data.success) {
setSuccess(true)
} else {
setError(data.error || 'Ein Fehler ist aufgetreten.')
}
} catch {
setError('Verbindungsfehler. Bitte versuchen Sie es erneut.')
} finally {
setIsLoading(false)
}
}
if (!token) {
return (
Ungültiger Link
Kein gültiger Reset-Token gefunden.
Neuen Link anfordern
)
}
return (
Neues Passwort
Geben Sie Ihr neues Passwort ein.
{success ? (
Passwort wurde erfolgreich geändert.
) : (
)}
)
}