Skip to main content

DocumentViewer

A React component that automatically selects the correct viewer for an OSDK Media object based on its MIME type. Supports PDF, TIFF, common image formats, video, and markdown.

Import

import { DocumentViewer } from "@osdk/react-components/experimental/document-viewer";

Usage

Basic

import { DocumentViewer } from "@osdk/react-components/experimental/document-viewer";

<DocumentViewer media={employee.trainingMaterial} />;

With viewer-specific props

<DocumentViewer
media={myMedia}
pdfViewerProps={{
initialSidebarOpen: true,
enableDownload: true,
}}
imageViewerProps={{
alt: "Product photo",
}}
/>;

With MIME type override

<DocumentViewer
media={myMedia}
mimeTypeOverride="application/pdf"
/>;

Props

DocumentViewerProps

PropTypeRequiredDescription
mediaMediaYesThe OSDK Media object to render
classNamestringNoCSS class applied to the root element
mimeTypeOverridestringNoOverride the auto-detected MIME type
pdfViewerPropsPartial<Omit<PdfViewerProps, "src">>NoProps forwarded to BasePdfViewer when rendering PDF
imageViewerPropsPartial<Omit<BaseImageViewerProps, "src">>NoProps forwarded to BaseImageViewer when rendering images
videoViewerPropsPartial<Omit<BaseVideoViewerProps, "src">>NoProps forwarded to BaseVideoViewer when rendering video
tiffRendererPropsPartial<Omit<TiffRendererProps, "content">>NoProps forwarded to TiffRenderer when rendering TIFF
markdownRendererPropsPartial<Omit<MarkdownRendererProps, "content">>NoProps forwarded to MarkdownRenderer when rendering markdown
excelViewerPropsPartial<Omit<BaseExcelViewerProps, "spreadsheet">>NoProps forwarded to BaseExcelViewer when rendering Excel
emailViewerPropsPartial<Omit<BaseEmailViewerProps, "email">>NoProps forwarded to BaseEmailViewer when rendering EML
xmlViewerPropsPartial<Omit<BaseXmlViewerProps, "content">>NoProps forwarded to BaseXmlViewer when rendering XML

Supported MIME types

MIME typeViewer
application/pdfPdfViewer
image/tiffTiffRenderer
image/png, image/jpeg, image/gif, image/svg+xml, image/webp, image/bmpImageViewer
video/*VideoViewer
text/markdown, text/x-markdownMarkdownRenderer
application/vnd.openxmlformats-officedocument.spreadsheetml.sheetExcelViewer
message/rfc822EmailViewer
application/xml, text/xmlXmlViewer

Unsupported MIME types — including .doc/.docx Microsoft Word documents — display a fallback message.

Theming

The root container is styled with CSS custom properties:

:root {
--osdk-document-viewer-bg: var(--osdk-background-primary);
--osdk-document-viewer-border: var(--osdk-surface-border);
}

Individual viewer theming is documented in each viewer's respective docs.