import { Dice5, PlusIcon, Trash2 } from "lucide-react"; import { redirect } from "next/navigation"; import { AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogTitle, AlertDialogTrigger, } from "@/components/ui/alert-dialog"; import { Button } from "@/components/ui/button"; import { Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupLabel, SidebarHeader, SidebarInset, SidebarMenu, SidebarProvider, SidebarTrigger, } from "@/components/ui/sidebar"; import { adminCheck } from "@/lib/auth"; import { db } from "@/lib/db"; import { endgameSubmissions } from "@/lib/db/schema"; import { getEndgameConfig, random, wipe } from "../api"; import { LimitManager, SlipButton, SubmissionList, Watcher } from "./client"; import { desc, sql } from "drizzle-orm"; import Link from "next/link"; import { ErrorBoundary } from "next/dist/client/components/error-boundary"; import { ErrorModal } from "@/components/error"; export default async function AdminLayout({ modal, children, }: { children: React.ReactNode; modal: React.ReactNode; }) { if (!(await adminCheck())) redirect(`/login?next=${encodeURIComponent("/rubgram/admin")}`); const subs = await db .select({ id: endgameSubmissions.id, name: endgameSubmissions.name, checked: endgameSubmissions.checked, queue: endgameSubmissions.queue, publicQueue: sql` ${endgameSubmissions.queue} - ( select count(*) from ${endgameSubmissions} e2 where e2.checked = true and e2.queue < ${endgameSubmissions.queue} or e2.archived ) `, paid: endgameSubmissions.paid, archived: endgameSubmissions.archived, }) .from(endgameSubmissions) .orderBy(desc(endgameSubmissions.archived), endgameSubmissions.id); const config = await getEndgameConfig(); return (
Admin
คุณมั่นใจที่จะล้างข้อมูลทั้งหมดใช่ไหม? การกระทำนี้ไม่สามารถย้อนกลับได้ เราจะลบบัญชีของท่านออกจากระบบ ยกเลิก ดำเนินการต่อ
รับกรรมแทนทางบ้าน การตั้งค่า c + (s.paid ? 1 : 0), 0)} />
{modal} {children}
); }