Skip to main content
The List View displays, filters, sorts, and paginates the documents in a Collection. You can replace the view or add components around its table.

Custom List View

Use a custom entry in admin.views to replace the collection list. shell: false replaces the complete collection area and requires this to be the only view:
The custom Server Component receives AdminViewServerProps. Fetch any data it needs with the current request and access enforcement:
To retain the built-in table, filters, sorting, and pagination, use a type: 'list' entry and customize its slots instead. A custom view owns its content and can pass serializable data to its own Client Components. FrogBot also supports multiple collection views through admin.views, including the board and calendar views. Every list and custom view option, including the list slots below, is listed in Collection Views.

Custom Components

Configure list slots on the list entry’s components object in admin.views. The shared collection Description remains under admin.components:
Each slot has Server and Client Component props. Import the matching type from frogbot, such as BeforeListServerProps, BeforeListClientProps, BeforeListTableServerProps, BeforeListTableClientProps, AfterListServerProps, AfterListClientProps, AfterListTableServerProps, or AfterListTableClientProps.

beforeList

The beforeView slot renders before the document list and its controls. Its prop types retain the BeforeList name.

beforeListTable

The beforeTable slot renders immediately before the table. Its prop types retain the BeforeListTable name.

afterListTable

The afterTable slot renders immediately after the table. Its prop types retain the AfterListTable name.

afterList

The afterView slot renders after the complete list view. Its prop types retain the AfterList name.

toolbar

The toolbar slot renders in the list controls toolbar, before Filters. Below the small breakpoint it moves beside the row-selection controls, which show only when the list has rows. It is not shown in relationship drawers. Each component receives collectionSlug, hasCreatePermission, hasDeletePermission and newDocumentURL, plus the list’s server props when it is a Server Component.

NoResults

NoResults replaces the empty state shown when the list has no documents. It is not shown in relationship drawers.

CreateButton

admin.components.CreateButton replaces the Create New button where it sits: in the toolbar after the layout toggle, before the ⋮ menu, and in the list’s empty state (unless the view sets NoResults). It does the same on board and calendar views, which have no Create New of their own, and renders in no trash view or relationship drawer. Below the small breakpoint it follows toolbar, and on a list with no rows it shows only in the empty state. It always renders, so it decides what a user without create access sees. It receives collectionSlug, hasCreatePermission and newDocumentURL; create access still governs REST and GraphQL create, the document view and relationship drawers. To match Create New, use the admin Button with buttonStyle="primary" and size="medium":

Description

Description replaces the description below the collection label. It is shared by the List and Edit Views.