"use client"; import { useEffect, useState } from "react"; import Link from "next/link"; import { buttonVariants } from "@/components/ui/button"; import { Badge } from "@/components/ui/badge"; import { Card, CardContent, CardDescription, CardHeader, CardTitle, } from "@/components/ui/card"; import { Plus } from "lucide-react"; interface Campaign { id: string; name: string; status: string; platforms: string; createdAt: string; _count: { assets: number; agentRuns: number }; } const statusColors: Record = { draft: "secondary", running: "default", review: "outline", approved: "default", published: "default", }; export default function CampaignsPage() { const [campaigns, setCampaigns] = useState([]); useEffect(() => { fetch("/api/campaigns") .then((r) => r.json()) .then(setCampaigns) .catch(() => {}); }, []); return (

Campaigns

New Campaign
{campaigns.length === 0 ? (

No campaigns yet. Create your first one to get started.

) : (
{campaigns.map((campaign) => { const platforms = JSON.parse(campaign.platforms) as string[]; return (
{campaign.name} {campaign.status}
{platforms.join(", ")} ·{" "} {campaign._count.assets} assets ·{" "} {new Date(campaign.createdAt).toLocaleDateString()}
); })}
)}
); }