"use client"; import { useState, useEffect } from "react"; import { Card, CardContent, CardHeader, CardTitle, CardDescription } from "./ui/card"; import { Badge } from "./ui/badge"; import { Button } from "./ui/button"; import { useAuth } from "./AuthProvider"; type Campaign = { id: string; name: string; gridSize: number; status: string; createdAt: string; }; export function CampaignList({ onSelect }: { onSelect: (id: string) => void }) { const { user } = useAuth(); const [campaigns, setCampaigns] = useState([]); const [loading, setLoading] = useState(true); useEffect(() => { fetch("/api/campaigns") .then(r => r.json()) .then(data => setCampaigns(data)) .finally(() => setLoading(false)); }, []); if (loading) { return (
Scanning submarine network...
); } if (campaigns.length === 0) { return (
🗺️

No active campaigns

Admin can create one

); } return (
{campaigns.map(c => ( onSelect(c.id)}>

{c.name}

{c.status} {c.gridSize}×{c.gridSize}
))}
); }