GitHub

FileViewerThumbnails

Page thumbnail navigation for document renderers inside File Viewer.

Use thumbnail navigation inside FileViewerSidebar when the file renderer has page-like units. PDF exposes this through PdfViewerThumbnails; other page renderers should follow the same sidebar contract.

<FileViewerProvider source={source} defaultSidebarOpen>
  <FileViewer>
    <PdfViewerProvider>
      <FileViewerHeader>
          <FileViewerSidebarTrigger />
          <FileViewerTitle />
          <FileViewerControls />
      </FileViewerHeader>
      <FileViewerContent>
        <FileViewerSidebar aria-label="PDF pages">
          <PdfViewerThumbnails />
        </FileViewerSidebar>
        <FileViewerInset>
          <FileViewerViewport>
            <PdfViewerPages />
          </FileViewerViewport>
        </FileViewerInset>
      </FileViewerContent>
    </PdfViewerProvider>
  </FileViewer>
</FileViewerProvider>

Behavior

  • The sidebar owns placement; the renderer-owned thumbnail component owns page rendering, current-page highlight, and page selection.
  • PdfViewerThumbnails is provider-bound: inside PdfViewerProvider it reads the resource, current page, and page-jump command automatically, so it takes no wiring props.
  • Only thumbnails near the rail viewport render images; the rest stay as sized placeholders, so a long document does not rasterize every page at once.
  • When page state is owned outside the provider, drop down to the controlled FileViewerPageRail (PdfThumbnailRail) instead.

API Reference

PdfViewerThumbnails — the provider-bound adapter:

PropTypeDescription
thumbnailWidthnumberThumbnail image width in CSS px. The sidebar shell owns rail width.
thumbnailShape"page" | "square"Preserve page aspect (page) or crop into a square frame.
classNamestringOptional class on the thumbnail rail.

Source

pdf-viewer-thumbnails.tsx