import { adminCheck } from "@/lib/auth"; import { redirect } from "next/navigation"; import { DonateWatcher } from "../client"; import { db } from "@/lib/db"; import { donations } from "@/lib/db/schema"; import { desc } from "drizzle-orm"; import { Gavel, ImageOff, RefreshCw } from "lucide-react"; import { fileToDataUrl } from "@/lib/utils"; import Image from "@/components/image"; import { Spinner } from "@/components/ui/spinner"; import { ActionButton } from "@/components/action-button"; import { reloadWidget } from "../api"; import { markDone } from "@/app/widget/donate/api"; import { ClientTracker, PIP, VolumeChanger } from "./client"; export default async function DonateModeratorPage() { if (!(await adminCheck())) redirect(`/login?next=${encodeURIComponent("/donate/admin/moderator")}`); const [sub] = await db .select() .from(donations) .orderBy(desc(donations.created)) // .where(isNotNull(donations.image)) .limit(1); async function reject() { "use server"; markDone(sub.id); reloadWidget(); } return (
Donate Moderator {sub.image ? (
donation image
) : (
)}
{sub.name} {sub.message}
{sub.amount}฿
Reject Reload Widgets
); }