"use client"; import { useAuth } from "@/components/AuthProvider"; import { ItemEditor } from "@/components/ItemEditor"; import { useParams, useRouter } from "next/navigation"; import { useEffect, useState } from "react"; import { Button } from "@/components/ui/button"; type Campaign = { id: string; name: string; gridSize: number; }; export default function EditCampaignPage() { const { user, loading: authLoading } = useAuth(); const params = useParams(); const router = useRouter(); const [campaign, setCampaign] = useState(null); const [loading, setLoading] = useState(true); useEffect(() => { if (authLoading) return; if (!user || !user.isAdmin) { router.push("/"); return; } const campaignId = params.campaignId as string; fetch("/api/campaigns") .then(r => r.json()) .then(campaigns => { const c = campaigns.find((c: Campaign) => c.id === campaignId); if (c) setCampaign(c); }) .finally(() => setLoading(false)); }, [user, authLoading, params.campaignId, router]); if (authLoading || loading) { return (
Loading...
); } if (!campaign) { return (
πŸ—ΊοΈπŸ’€

Campaign not found

); } return (

{campaign.name}

{campaign.gridSize}Γ—{campaign.gridSize} grid

); }