"use client"; import { useEffect, useState } from "react"; import { useRouter } from "next/navigation"; import { useAuth } from "@/hooks/useAuth"; import { LogIn } from "lucide-react"; export default function AdminPage() { const { user, loading, login } = useAuth(); const router = useRouter(); const [error, setError] = useState(""); const [loggingIn, setLoggingIn] = useState(false); useEffect(() => { if (loading) return; if (!user) return; if (user.role === "ADMIN" || user.role === "MODERATOR") { router.push("/admin/overview"); } else { router.push("/dashboard"); } }, [user, loading, router]); const handleLogin = async () => { setError(""); setLoggingIn(true); try { await login(); } catch (err: any) { setError(err.message || "Login failed"); } finally { setLoggingIn(false); } }; if (loading) { return (
Sign in with your Nostr identity to access the admin panel.
{error && ({error}
)}You need a Nostr browser extension (e.g. Alby, nos2x, or Flamingo) to sign in. Your pubkey must be registered as an admin or moderator.