"use client"; import Link from "next/link"; import { useRouter } from "next/navigation"; import { useEffect, useState } from "react"; interface EventContent { title: string; subTitle: string; eventDate: string; eventTime: string; locationName: string; locationAddress: string; whatToBring: string; rulesAndGdpr: string; } export default function AdminDashboard() { const [content, setContent] = useState(null); const [loading, setLoading] = useState(true); const [saving, setSaving] = useState(false); const [message, setMessage] = useState({ type: "", text: "" }); const router = useRouter(); useEffect(() => { const token = localStorage.getItem("adminToken"); if (!token) { router.push("/admin/login"); return; } fetch("/api/Content") .then((res) => res.json()) .then((data) => { setContent(data); setLoading(false); }) .catch((err) => { console.error("Failed to fetch content", err); setLoading(false); }); }, [router]); const handleLogout = () => { localStorage.removeItem("adminToken"); router.push("/admin/login"); }; const handleSave = async (e: React.FormEvent) => { e.preventDefault(); if (!content) return; setSaving(true); setMessage({ type: "", text: "" }); try { const response = await fetch("/api/Content", { method: "POST", headers: { "Content-Type": "application/json" }, body: JSON.stringify(content), }); if (response.ok) { setMessage({ type: "success", text: "Content saved successfully!" }); } else { setMessage({ type: "error", text: "Failed to save content." }); } } catch (err) { setMessage({ type: "error", text: "An error occurred while saving." }); } finally { setSaving(false); } }; const handleChange = (e: React.ChangeEvent) => { const { name, value } = e.target; setContent((prev) => prev ? { ...prev, [name]: value } : null); }; if (loading) return
Loading...
; if (!content) return
Error loading content.
; return (

Admin Dashboard

View Site