Display a document count in the title of a pane in Structure Builder

By RD Pennell

Add a count of documents to your Structure Builder panes

Warning

This schema is for an older version of Sanity Studio (v2), which is deprecated.

Learn how to migrate to the new Studio v3 →

deskStructure.js

import S from '@sanity/desk-tool/structure-builder';
import documentStore from 'part:@sanity/base/datastore/document';
import { map } from 'rxjs/operators';

export default () => documentStore.listenQuery(`count(*[_type == 'movie'])`).pipe(
    map((count) =>
      S.list()
        .title('Movie Database Example')
        .items([
          S.documentTypeListItem('movie').title(`Movies (${count})`),
          ...S.documentTypeListItems().filter(
            (listItem) => !['movie'].includes(listItem.getId())
          ),
        ])
    )
  );

Within the Community Slack, we're often asked how to show the count of a given document type within a custom Desk structure. The documentStore and rxjs allow us to display a count inside of our title that updates in real time.

Contributor

Other schemas by author