Skip to content

AdminLayoutProps

Defined in: packages/react/src/admin/AdminLayout.tsx:56

Props for the AdminLayout component.

optional activeDocID?: string

Defined in: packages/react/src/admin/AdminLayout.tsx:66

The docID of the currently active document. Forwarded to AppSidebar for active nav highlighting.


optional activeSlug?: string

Defined in: packages/react/src/admin/AdminLayout.tsx:61

The slug of the currently active collection. Forwarded to AppSidebar for active nav highlighting.


optional authPromise?: Promise<VexApiAuth>

Defined in: packages/react/src/admin/AdminLayout.tsx:91

The caller’s { user, organization } (Decision 44), in flight — resolved independently of children, inside its OWN <Suspense> boundary around JUST the sidebar’s own nav gating, so a slow auth fetch never blocks children’s own streaming (a perf fix: previously the whole admin shell waited on this before rendering ANYTHING). Omit it when config.access is absent/disabled (Decision 44’s optional-auth case) — the sidebar then renders immediately with an anonymous { user: null }, nothing to suspend on.


children: ReactNode

Defined in: packages/react/src/admin/AdminLayout.tsx:68

The active view content rendered in the main content area.


optional components?: FrameworkComponents

Defined in: packages/react/src/admin/AdminLayout.tsx:80

Optional framework-specific component overrides.

Pass { Link: NextLink, Image: NextImage } for Next.js. Pass { Link: StartLink } for TanStack Start (where StartLink wraps RouterLink to map href → to).

When omitted, all internal components fall back to native <a> and <img>. In practice this prop is set by the framework adapter (@vexcms/next etc.) rather than by the application developer.


optional sidebarOpen?: boolean

Defined in: packages/react/src/admin/AdminLayout.tsx:92