import { desc, eq } from "drizzle-orm"; import Link from "next/link"; import { getTranslations } from "next-intl/server"; import { ContentCard, EmptyState } from "@/components/public/ui"; import { db, RadioContests } from "@/lib/db"; import { formatDate } from "@/lib/format-date"; export const revalidate = 300; export default async function RadioContestsPage() { const t = await getTranslations("pages.radioContests"); const contests = await db .select({ id: RadioContests.id, title: RadioContests.title, prize: RadioContests.prize, startDate: RadioContests.startDate, endDate: RadioContests.endDate, }) .from(RadioContests) .where(eq(RadioContests.isActive, true)) .orderBy(desc(RadioContests.startDate)) .limit(50) .catch(() => []); return (
{contests.length === 0 ? ( {t("empty")} ) : (
{contests.map((c) => { const id = c.id.toString(); return (

🎉{" "} {c.title || t("contestLabel", { id })}

{c.prize ? (

Prize: {c.prize}

) : null}

{c.startDate ? `${formatDate(c.startDate, "date", "")} — ${c.endDate ? formatDate(c.endDate, "date", "") : "ongoing"}` : t("dateUnknown")}

); })}
)}
); }