'use client' import { Suspense, useState } from 'react' import { useRouter, useSearchParams } from 'next/navigation' import { Button } from '@/components/ui/button' import { Input } from '@/components/ui/input' import { Label } from '@/components/ui/label' import { Loader2, Lock } from 'lucide-react' function LoginForm() { const router = useRouter() const searchParams = useSearchParams() const redirect = searchParams.get('redirect') || '/' const [password, setPassword] = useState('') const [loading, setLoading] = useState(false) const [error, setError] = useState('') const handleSubmit = async (e: React.FormEvent) => { e.preventDefault() if (!password) return setLoading(true) setError('') try { const res = await fetch('/api/auth/login', { method: 'POST', headers: { 'content-type': 'application/json' }, body: JSON.stringify({ password, redirect }), }) const data = await res.json() if (!res.ok) { setError(data.error || 'Login fehlgeschlagen') return } router.push(data.redirect || '/') router.refresh() } catch { setError('Netzwerkfehler') } finally { setLoading(false) } } return (
setPassword(e.target.value)} placeholder="Admin-Passwort eingeben" autoFocus autoComplete="current-password" />
{error && (

{error}

)}
) } export default function LoginPage() { return (

AOS Login

Agency Operating System — dfmpanel.eu

Laden…
}>

Geschützter Bereich — nur für autorisierte Benutzer.

) }