import { Metadata } from "next"; import { TopbarNav } from "@app/components/TopbarNav"; import { Users } from "lucide-react"; import { Header } from "@app/components/Header"; import { verifySession } from "@app/lib/auth/verifySession"; import { redirect } from "next/navigation"; import { cache } from "react"; import UserProvider from "@app/providers/UserProvider"; import { ListOrgsResponse } from "@server/routers/org"; import { internal } from "@app/lib/api"; import { AxiosResponse } from "axios"; import { authCookieHeader } from "@app/lib/api/cookies"; export const dynamic = "force-dynamic"; export const metadata: Metadata = { title: `Server Admin - Pangolin`, description: "" }; const topNavItems = [ { title: "All Users", href: "/admin/users", icon: } ]; interface LayoutProps { children: React.ReactNode; } export default async function SettingsLayout(props: LayoutProps) { const getUser = cache(verifySession); const user = await getUser(); if (!user || !user.serverAdmin) { redirect(`/`); } const cookie = await authCookieHeader(); let orgs: ListOrgsResponse["orgs"] = []; try { const getOrgs = cache(() => internal.get>(`/orgs`, cookie) ); const res = await getOrgs(); if (res && res.data.data.orgs) { orgs = res.data.data.orgs; } } catch (e) {} return ( <>
{props.children}
); }