draupnir4all-web

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

layoutWrapper.tsx (1335B)


      1 import { Suspense } from "react";
      2 import { DashboardHeader } from "./dashboard-header";
      3 import { ListResponse } from "@/lib/api";
      4 
      5 interface LayoutWrapperProps {
      6     children: React.ReactNode;
      7     activeTab: "overview" | "reports" | "bans" | "analytics" | "settings";
      8     teamIdParam?: string;
      9     listData: ListResponse | undefined;
     10 }
     11 
     12 export default function LayoutWrapper({ children, activeTab, teamIdParam, listData }: LayoutWrapperProps) {
     13     // Get first team id if there is no teamIdParam
     14     const teamId = teamIdParam || listData?.bots[0]?.id;
     15 
     16     return (
     17         <div className="flex min-h-screen flex-col bg-black text-white">
     18             <Suspense
     19                 fallback={
     20                     <div className="flex h-16 items-center justify-between border-b border-gray-800 bg-black/80 backdrop-blur-sm">
     21                         Loading...
     22                     </div>
     23                 }
     24             >
     25                 <DashboardHeader listData={listData} activeTab={activeTab} teamIdParam={teamId} />
     26             </Suspense>
     27             <main className="flex-1 container px-4 py-8 md:px-6 md:py-12">
     28                 <Suspense fallback={<div className="flex h-screen w-full items-center justify-center">Loading...</div>}>
     29                     {children}
     30                 </Suspense>
     31             </main>
     32         </div>
     33     )
     34 }