Structured Content 2022: Join our conference to explore fresh perspectives on content and digital experiences →

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

By Racheal Pennell

Add a count of documents to your Structure Builder panes

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