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

NameTypeDescription
mediaMediaRequired. The Media object to render
classNamestringAdditional CSS class name for the root element Defaults to undefined.
mimeTypeOverridestringOverride the auto-detected MIME type Defaults to undefined.
pdfViewerPropsPartial<Omit<PdfViewerProps, "src" | "className">>Props forwarded to BasePdfViewer when rendering PDF Defaults to undefined.
imageViewerPropsPartial<Omit<BaseImageViewerProps, "src" | "className">>Props forwarded to BaseImageViewer when rendering images Defaults to undefined.
videoViewerPropsPartial<Omit<BaseVideoViewerProps, "src" | "className">>Props forwarded to BaseVideoViewer when rendering video Defaults to undefined.
tiffRendererPropsPartial<Omit<TiffRendererProps, "content" | "className">>Props forwarded to TiffRenderer when rendering TIFF Defaults to undefined.
markdownRendererPropsPartial<Omit<MarkdownRendererProps, "content" | "className">>Props forwarded to MarkdownRenderer when rendering markdown Defaults to undefined.
excelViewerPropsPartial<Omit<BaseExcelViewerProps, "spreadsheet" | "className">>Props forwarded to BaseExcelViewer when rendering Excel Defaults to undefined.
emailViewerPropsPartial<Omit<BaseEmailViewerProps, "email" | "className">>Props forwarded to BaseEmailViewer when rendering EML Defaults to undefined.
xmlViewerPropsPartial<Omit<BaseXmlViewerProps, "content" | "className">>Props forwarded to BaseXmlViewer when rendering XML Defaults to undefined.
fileNamestringFile name hint for MIME type detection (e.g. "scan.tif"). Used to detect TIFF files when the MIME type is ambiguous (e.g. application/octet-stream). Defaults to undefined.
enableTiffToPdfbooleanWhen true, multi-page TIFF files are converted to PDF via MIO transform API Defaults to false.

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.