OptionalcolorsCustom colors
OptionalcurrentCurrent user ID (used to determine edit permissions on markers)
OptionalcustomCustom viewer renderers for specific resource types. Allows developers to add their own viewers for custom file types.
OptionalenableEnable broadcasting media audio into a Hiyve room via the rtc-client
mergeAudioInput audio merger. When true, the MediaPlayer renders a
passthrough toggle and dispatches a hiyve-media-passthrough window
CustomEvent (with { stream, active }) on toggle. Consumers must
listen for that event and route it to their HiyveClient —
useMediaPassthroughBridge() in @hiyve/react is the canonical
wiring. The room/client must have been connected with
enableAudioMerge: true or mergeAudioInput will throw.
OptionalenableEnable timeline markers for audio/video files
OptionalenableEnable region creation and loop playback for audio/video files
OptionalerrorError message if loading failed
File being viewed
Presigned URL for file content
OptionallabelsCustom labels
Optionalclose?: stringOptionalerror?: stringOptionalloading?: stringOptionalnoInlinePreview?: stringMessage shown for resource types without an inline viewer
OptionalnoPreview?: stringOptionalopenInDedicatedTab?: stringHint directing users to open in the dedicated tab
Optionalpages?: stringOptionalloadingWhether file is loading
OptionalmarkersInitial timeline markers to load
Close viewer handler
OptionalonCallback to open another file (for linked files like summaries)
OptionalonCalled when a new timeline marker is added
OptionalonCalled when a timeline marker is updated
OptionalonCalled when a timeline marker is deleted
OptionalonFires when the lock controller toggles the lock state.
OptionalonFires when the PDF viewer's active page changes (user scroll or toolbar). The teacher's presenter-sync wiring listens here and rebroadcasts.
OptionalonCalled when a named region is created or updated
OptionalonCalled when a named region is deleted
OptionalonCallback to resolve a presigned URL for a file by ID. Used to auto-resolve recording video for analysis files.
Whether viewer is open
OptionalparentReference to parent container (for positioning)
OptionalpdfLocal user id stamped on every locally-authored stroke.
OptionalpdfTrue when the caller can toggle the lock (the teacher).
OptionalpdfAnnotation lock state (read-only for everyone except the lock controller). When true, followers see existing strokes but can't draw or erase. Defaults to true (locked) for safety.
OptionalpdfHide the PDF toolbar and ignore page-navigation input. Used to "lock" the viewer for followers in a synced session so they can't desync from the presenter.
OptionalpdfEnable per-page drawing annotations synced via the relay. Only
set true inside a synced lesson — requires a
<SemanticRelayProvider> ancestor and a valid file.fileId
for the topic key.
OptionalpdfControlled current page (1-based) for the PDF viewer. When set, the viewer scrolls to this page on change. Used by presenter-sync to follow a teacher's page. Ignored when the file isn't a PDF.
OptionalrecordingPresigned URL to the recording video (shown inline in recording-analysis viewer).
When not provided but onResolveRecordingUrl is set, FileViewer resolves it automatically.
OptionalregionsInitial named regions to load
OptionalresolveResolve a userId to a display name. Forwarded to the RoomSummaryViewerProps.resolveDisplayName when this viewer renders a room-summary file. Lesson contexts should pass their app-level resolver so teacher-assigned student nicknames win over the summary document's stored placeholder.
OptionalstylesCustom styles
OptionalvariantRender as fullscreen fixed overlay or inline within parent container
Props for the FileViewer overlay component.
Example
Example
With custom viewers: