import Link from 'next/link'; import { prisma } from '@/lib/prisma'; import { deleteShout } from '@/actions/admin-radio-moderation'; import { StatusCard } from '@/components/admin/dashboard'; import { Shield } from 'lucide-react'; export const dynamic = 'force-dynamic'; type Shout = { id: bigint; userId: bigint; message: string; createdAt: Date | null; updatedAt: Date | null; }; function formatDate(d: Date | null): string { return d ? d.toISOString().slice(0, 16).replace('T', ' ') : '—'; } export default async function AdminRadioModerationPage() { let shouts: Shout[] = []; try { shouts = await prisma.radioShouts.findMany({ select: { id: true, userId: true, message: true, createdAt: true, updatedAt: true, }, orderBy: { id: 'desc' }, take: 50, }); } catch { shouts = []; } return (

DJ Moderation

Review and remove radio shouts (50 most recent).

Recent Shouts ({shouts.length})

{shouts.length === 0 ? (
No shouts to moderate.
) : ( {shouts.map((s) => ( ))}
ID User Message Posted
{String(s.id)} {String(s.userId)} {s.message} {formatDate(s.createdAt)}
)}
); }