'use client'; import { useState } from 'react'; import { setUserAsAdmin } from '@/app/actions/set-user-admin'; import { useRouter } from 'next/navigation'; interface AdminTokenFormProps { userEmail: string; } export function AdminTokenForm({ userEmail }: AdminTokenFormProps) { const [adminToken, setAdminToken] = useState(''); const [loading, setLoading] = useState(false); const [error, setError] = useState(''); const [success, setSuccess] = useState(false); const router = useRouter(); const handleSubmit = async (e: React.FormEvent) => { e.preventDefault(); setError(''); setLoading(true); try { const result = await setUserAsAdmin(userEmail, adminToken); if (result.success) { setSuccess(true); setAdminToken(''); // Refresh the page to verify admin status setTimeout(() => { router.refresh(); }, 1500); } else { setError(result.error || 'Invalid admin token'); } } catch (err: any) { setError(err.message || 'Ein Fehler ist aufgetreten'); } finally { setLoading(false); } }; return (
{/* Header */}

Admin-Zugriff erforderlich

Sie benötigen Admin-Rechte, um diese Seite zu besuchen

{/* Form */}
{/* Success Message */} {success && (

✓ Admin-Status erfolgreich aktiviert! Seite wird aktualisiert...

)} {/* Error Message */} {error && (
{error}
)} {/* User Info */}

Benutzer: {userEmail}

{/* Admin Token Input */}
setAdminToken(e.target.value)} placeholder="Admin-Token eingeben" required disabled={loading || success} className="w-full px-4 py-2 border border-gray-300 rounded-lg focus:outline-none focus:ring-2 focus:ring-amber-500 focus:border-transparent transition-colors disabled:bg-gray-100 disabled:text-gray-500" />

Geben Sie den Admin-Token ein, um Admin-Rechte zu aktivieren

{/* Submit Button */}
); }