spb/satelliteindex
Public
TypeScript 66.5%
Python 30.9%
JavaScript 1.4%
CSS 0.7%
1import type { ReactNode } from 'react';2import { AdminNav } from '@/components/admin/nav';3import { Container } from '@/components/ui/section';4import { requireAdmin } from '@/lib/admin-auth';56/** Every page in this group requires the admin session cookie; anonymous visitors are redirected to /admin/login. */7export default async function AdminProtectedLayout({ children }: { children: ReactNode }) {8 await requireAdmin();9 return (10 <Container wide className="py-6 md:py-8">11 <div className="grid gap-6 lg:grid-cols-[200px_minmax(0,1fr)] lg:gap-10">12 <aside className="min-w-0 lg:sticky lg:top-[calc(var(--header-h)+1.5rem)] lg:self-start">13 <p className="eyebrow mb-2 hidden lg:block">Admin console</p>14 <AdminNav />15 </aside>16 <div className="min-w-0">{children}</div>17 </div>18 </Container>19 );20}21