import { desc } from "drizzle-orm"; import { getTranslations } from "next-intl/server"; import { deleteShout } from "@/actions/admin-radio-moderation"; import { StatusCard } from "@/components/admin/dashboard"; import { Button } from "@/components/ui/button"; import { db, RadioShouts } from "@/lib/db"; import { formatDate } from "@/lib/format-date"; type Shout = { id: bigint; userId: bigint; message: string; createdAt: Date | null; updatedAt: Date | null; }; export default async function AdminRadioModerationPage() { const t = await getTranslations("pages.admin.radio"); let shouts: Shout[] = []; try { shouts = await db .select({ id: RadioShouts.id, userId: RadioShouts.userId, message: RadioShouts.message, createdAt: RadioShouts.createdAt, updatedAt: RadioShouts.updatedAt, }) .from(RadioShouts) .orderBy(desc(RadioShouts.id)) .limit(50); } catch { shouts = []; } return (

{t("moderationPage.recentShouts", { count: shouts.length })}

{shouts.length === 0 ? (
{t("noShouts")}
) : ( {shouts.map((s) => ( ))}
ID {t("user")} {t("message")} {t("posted")}
{String(s.id)} {String(s.userId)} {s.message} {formatDate(s.createdAt, "datetime", "\u2014")}
)}
); }