diff --git a/src/elements/content-preview/ContentPreview.js b/src/elements/content-preview/ContentPreview.js index 2b88d87a84..1911abc839 100644 --- a/src/elements/content-preview/ContentPreview.js +++ b/src/elements/content-preview/ContentPreview.js @@ -85,6 +85,7 @@ type StartAt = { }; type Props = { + accessPattern?: 'file_list' | 'direct_link' | 'shared_link', advancedContentInsights: { isActive: boolean, ownerEId: number, @@ -126,13 +127,16 @@ type Props = { onLoad: Function, onNavigate: Function, onVersionChange: VersionChangeCallback, + preloadStatus?: 'hit' | 'miss', previewExperiences?: { [name: string]: TargetingApi, }, previewLibraryVersion: string, + previewMode?: 'default' | 'shared_file' | 'shared_folder' | 'editable_shared_file' | 'inline_feed', requestInterceptor?: Function, responseInterceptor?: Function, sharedLink?: string, + sharedLinkAuth?: 'logged_in' | 'logged_out' | 'na', sharedLinkPassword?: string, showAnnotations?: boolean, showAnnotationsControls?: boolean, @@ -899,6 +903,7 @@ class ContentPreview extends React.PureComponent { */ loadPreview = async (): Promise => { const { + accessPattern, advancedContentInsights, // will be removed once preview package will be updated to utilize feature flip for ACI annotatorState: { activeAnnotationId } = {}, renderCustomPreview, @@ -909,7 +914,10 @@ class ContentPreview extends React.PureComponent { onAnnotatorEvent, onAnnotator, onContentInsightsEventReport, + preloadStatus, previewExperiences, + previewMode, + sharedLinkAuth, showAnnotationsControls, token: tokenOrTokenFunction, ...rest @@ -951,6 +959,7 @@ class ContentPreview extends React.PureComponent { } 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, @@ -960,6 +969,9 @@ class ContentPreview extends React.PureComponent { header: 'none', headerElement: `#${this.id} .bcpr-PreviewHeader`, experiences: previewExperiences, + preloadStatus, + previewMode, + sharedLinkAuth, showAnnotations: this.canViewAnnotations(), showAnnotationsControls, showDownload: this.canDownload(), diff --git a/src/elements/content-preview/__tests__/ContentPreview.test.js b/src/elements/content-preview/__tests__/ContentPreview.test.js index 315013ac5a..78b0a4445c 100644 --- a/src/elements/content-preview/__tests__/ContentPreview.test.js +++ b/src/elements/content-preview/__tests__/ContentPreview.test.js @@ -385,6 +385,41 @@ describe('elements/content-preview/ContentPreview', () => { ); }); + test('should forward host-supplied monitoring dimensions to preview options', async () => { + const wrapper = getWrapper({ + ...props, + accessPattern: 'file_list', + preloadStatus: 'hit', + 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', + preloadStatus: 'hit', + 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.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({