Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 15 additions & 0 deletions src/elements/content-preview/ContentPreview.js
Original file line number Diff line number Diff line change
Expand Up @@ -132,6 +132,11 @@ type Props = {
previewLibraryVersion: string,
requestInterceptor?: Function,
responseInterceptor?: Function,
accessPattern?: 'file_list' | 'direct_link' | 'shared_link',
prefetchStatus?: 'hit' | 'miss',
preloadStatus?: 'hit' | 'miss',
previewMode?: 'default' | 'shared_file' | 'shared_folder' | 'editable_shared_file' | 'inline_feed',
sharedLinkAuth?: 'logged_in' | 'logged_out' | 'na',
sharedLink?: string,
sharedLinkPassword?: string,
showAnnotations?: boolean,
Expand Down Expand Up @@ -899,6 +904,7 @@ class ContentPreview extends React.PureComponent<Props, State> {
*/
loadPreview = async (): Promise<void> => {
const {
accessPattern,
advancedContentInsights, // will be removed once preview package will be updated to utilize feature flip for ACI
annotatorState: { activeAnnotationId } = {},
renderCustomPreview,
Expand All @@ -909,7 +915,11 @@ class ContentPreview extends React.PureComponent<Props, State> {
onAnnotatorEvent,
onAnnotator,
onContentInsightsEventReport,
prefetchStatus,
preloadStatus,
previewExperiences,
previewMode,
sharedLinkAuth,
showAnnotationsControls,
token: tokenOrTokenFunction,
...rest
Expand Down Expand Up @@ -951,6 +961,7 @@ class ContentPreview extends React.PureComponent<Props, State> {
}

const previewOptions = {
accessPattern,
advancedContentInsights, // will be removed once preview package will be updated to utilize feature flip for ACI
container: `#${this.id} .bcpr-content`,
enableBoundingBoxHighlights,
Expand All @@ -960,6 +971,10 @@ class ContentPreview extends React.PureComponent<Props, State> {
header: 'none',
headerElement: `#${this.id} .bcpr-PreviewHeader`,
experiences: previewExperiences,
prefetchStatus,
preloadStatus,
previewMode,
sharedLinkAuth,
showAnnotations: this.canViewAnnotations(),
showAnnotationsControls,
showDownload: this.canDownload(),
Expand Down
38 changes: 38 additions & 0 deletions src/elements/content-preview/__tests__/ContentPreview.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -385,6 +385,44 @@ describe('elements/content-preview/ContentPreview', () => {
);
});

test('should forward host-supplied monitoring dimensions to preview options', async () => {
const wrapper = getWrapper({
...props,
accessPattern: 'file_list',
prefetchStatus: 'hit',
preloadStatus: 'miss',
previewMode: 'default',
sharedLinkAuth: 'na',
});
wrapper.setState({ file });
const instance = wrapper.instance();
await instance.loadPreview();
expect(instance.preview.show).toHaveBeenCalledWith(
file.id,
expect.any(Function),
expect.objectContaining({
accessPattern: 'file_list',
prefetchStatus: 'hit',
preloadStatus: 'miss',
previewMode: 'default',
sharedLinkAuth: 'na',
}),
);
});

test('should pass monitoring dimensions as undefined when host omits them', async () => {
const wrapper = getWrapper(props);
wrapper.setState({ file });
const instance = wrapper.instance();
await instance.loadPreview();
const options = instance.preview.show.mock.calls[0][2];
expect(options.accessPattern).toBeUndefined();
expect(options.prefetchStatus).toBeUndefined();
expect(options.preloadStatus).toBeUndefined();
expect(options.previewMode).toBeUndefined();
expect(options.sharedLinkAuth).toBeUndefined();
});

test('should call preview show with file version params if provided', async () => {
const wrapper = getWrapper(props);
wrapper.setState({
Expand Down
Loading