draupnir4all-web

git clone git://archive.git.mtrnord.blog/MTRNord/draupnir4all-web.git
Log | Files | Refs | README | LICENSE

page.tsx (1883B)


      1 import { listBots } from "@/lib/api";
      2 import { User } from "@/lib/auth";
      3 import { cookies } from "next/headers";
      4 import SettingsLayout from "../settingsLayout";
      5 import AddProtectedRoom from "@/components/modals/add-protected-room";
      6 import { ScrollArea } from "@/components/ui/scroll-area";
      7 import ProtectedRomsList from "@/components/dashboard/protected-rooms-list";
      8 
      9 export default async function ProtectedRoomsSettingsPage({
     10     searchParams,
     11 }: {
     12     searchParams: Promise<{ [key: string]: string | string[] | undefined }>
     13 }) {
     14     const teamIdParam = (await searchParams).team as string | undefined;
     15     const cookieStore = await cookies()
     16     const session: User = JSON.parse(cookieStore.get("d4all_session")?.value || "{}")
     17     if (!session.token) {
     18         return <div className="flex h-screen w-full items-center justify-center">Loading...</div>
     19     }
     20     const listData = await listBots(session.matrixId, session.token);
     21 
     22     if (!listData) {
     23         return <div className="flex h-screen w-full items-center justify-center">Loading...</div>
     24     }
     25 
     26     const selectedBot = listData.bots.find((team) => team.id === teamIdParam) ?? listData.bots[0];
     27     if (!selectedBot) {
     28         // TODO: Redirect to register page?
     29         return <div className="flex h-screen w-full items-center justify-center">Loading...</div>
     30     }
     31     
     32     return (
     33         <SettingsLayout currentTab={"rooms"} listData={listData} selectedBot={selectedBot} teamIdParam={teamIdParam}>
     34             <div className="flex items-center justify-between">
     35                 <h3 className="text-sm font-medium text-gray-400">Protected Rooms</h3>
     36                 <AddProtectedRoom filled />
     37             </div>
     38 
     39             <ScrollArea className="h-[300px] rounded-md border border-gray-800">
     40                 <ProtectedRomsList selectedBot={selectedBot} />
     41             </ScrollArea>
     42         </SettingsLayout>
     43     )
     44 }