import { DoorOpen, Eye, Globe, Lock, Pencil, Sofa, Users } from "lucide-react"; import Link from "next/link"; import { redirect } from "next/navigation"; import { AdminBreadcrumb } from "@/components/admin/admin-breadcrumb"; import { Badge } from "@/components/ui/badge"; import { Button } from "@/components/ui/button"; import { Card, CardContent } from "@/components/ui/card"; import { canAccess, getAdminContext, PERMS } from "@/lib/permissions"; import { loadRoom } from "../../_lib/load-room"; // TODO: Cache Components adoption. Refactor this route so this opt-out can be removed. // See: https://nextjs.org/docs/app/guides/migrating-to-cache-components export const instant = false; const stateVariants: Record< string, "default" | "secondary" | "destructive" | "outline" > = { open: "default", locked: "secondary", password: "destructive", invisible: "outline", }; export default async function RoomShowPage({ params, }: { params: Promise<{ locale: string; id: string }>; }) { const { id } = await params; const { session, permissions } = await getAdminContext(); if (!canAccess(permissions, PERMS.ROOMS_VIEW, session.user.rank)) redirect("/admin"); const room = await loadRoom(id); const canEdit = canAccess(permissions, PERMS.ROOMS_EDIT, session.user.rank); return (
{room.description}
)}{room.users} / {room.usersMax}
Current Users
{room.state}
Access State
{room.score}
Score
{room.category}
Category