Skip to content

AdminLayoutProps

Defined in: packages/react/src/components/AdminLayout.tsx:40

Props for the AdminLayout component.

optional activeDocID?: string

Defined in: packages/react/src/components/AdminLayout.tsx:52

The docID of the currently active document. Forwarded to AppSidebar and AdminTopNav for admin navigation.


optional activeSlug?: string

Defined in: packages/react/src/components/AdminLayout.tsx:47

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


children: ReactNode

Defined in: packages/react/src/components/AdminLayout.tsx:59

The active view content rendered in the main content area.


optional components?: FrameworkComponents

Defined in: packages/react/src/components/AdminLayout.tsx:71

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 hrefto).

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.


config: object

Defined in: packages/react/src/components/AdminLayout.tsx:42

The full resolved VexCMS config — forwarded to AppSidebar.

admin: object

Resolved admin panel configuration — always fully populated after defaults are applied.

sidebar: object

Navigation sidebar configuration — always present after defaults are applied.

collapsible: "none" | "offcanvas" | "icon"

How the sidebar in the admin panel collapses

side: "left" | "right"

Which side of the viewport the admin sidebar is anchored to.

optional auth?: object

Auth adapter registered with this config. Auth collections are merged with user-defined collections — protected collections and locked fields are preserved during merge.

readonly collections: object[]

Auth collections to register alongside user-defined collections.

These are merged into VexConfig.collections automatically by defineConfig(). Each collection uses standard Vex field builders (text(), relationship(), etc.) and may carry admin.readOnly defaults on system fields.

readonly name: string

Provider identifier for debugging and telemetry.

readonly userCollection: string

The slug of the collection that stores user documents.

Used by the admin panel to resolve user references and by auth-aware components to look up the current user collection.

basePath: string

URL prefix for all admin panel routes — always set after defaults are applied.

collections: object[]

All registered content collections — always an array after defaults are applied.

globals: object[]

Resolved global configs. Always present; defaults to [].

mediaCollections: object[]

Media collections — processed by storage adapters and stored separately from user-defined collections. These appear in the admin panel under a dedicated “Media” section. Each collection is tagged with meta.storageAdapterName indicating which adapter owns it.

schema: object

Resolved schema generation configuration — always fully populated after defaults are applied.

outputPath: string

Path where vex.schema.ts is written. Always set after defaults are applied.

optional storage?: object

Storage adapters registered with this config. Processed media collections from all adapters are available via mediaCollections.

adapters: object[]

Storage adapters configured for the project.

types: object

outputPath: string

Path where vex.types.ts is written. Always set after defaults are applied.


optional organization?: Record<string, unknown>

Defined in: packages/react/src/components/AdminLayout.tsx:73


pathname: string

Defined in: packages/react/src/components/AdminLayout.tsx:57

The full pathname of the current url Forwarded to AppTopNav for the top nav.


optional sidebarOpen?: boolean

Defined in: packages/react/src/components/AdminLayout.tsx:74


optional user?: AdminUser

Defined in: packages/react/src/components/AdminLayout.tsx:72