diff --git a/src/elements/content-uploader/ContentUploader.tsx b/src/elements/content-uploader/ContentUploader.tsx index 9f733cdd1f..e7ae62240c 100644 --- a/src/elements/content-uploader/ContentUploader.tsx +++ b/src/elements/content-uploader/ContentUploader.tsx @@ -97,6 +97,8 @@ export interface ContentUploaderProps { onMinimize?: () => void; onProgress: (item: UploadItem) => void; onResume: (item: UploadItem) => void; + onItemShare?: (itemId: string) => void; + onItemOpen?: (itemId: string) => void; onUpgradeCTAClick?: () => void; onUpload: (item?: UploadItem | BoxItem) => void; overwrite: boolean | 'error'; @@ -172,6 +174,8 @@ class ContentUploader extends Component { onProgress: noop, onResume: noop, onUpload: noop, + onItemShare: noop, + onItemOpen: noop, overwrite: true, rootFolderId: DEFAULT_ROOT, uploadHost: DEFAULT_HOSTNAME_UPLOAD, @@ -1451,6 +1455,8 @@ class ContentUploader extends Component { messages, onClose, onUpgradeCTAClick, + onItemShare, + onItemOpen, rootFolderId, theme, useUploadsManager, @@ -1480,6 +1486,8 @@ class ContentUploader extends Component { onItemCancel={this.handleUploadsManagerItemCancel} onItemRetry={this.handleUploadsManagerItemRetry} onItemRemove={this.handleUploadsManagerItemRemove} + onItemShare={onItemShare} + onItemOpen={onItemOpen} onCancelAll={this.handleCancelAllClick} onRetryAll={this.handleUploadsManagerRetryAll} /> diff --git a/src/elements/content-uploader/__tests__/ContentUploader.test.js b/src/elements/content-uploader/__tests__/ContentUploader.test.js index 931b53f4cc..d3f9b79918 100644 --- a/src/elements/content-uploader/__tests__/ContentUploader.test.js +++ b/src/elements/content-uploader/__tests__/ContentUploader.test.js @@ -1300,6 +1300,28 @@ describe('elements/content-uploader/ContentUploader', () => { expect(resetSpy).not.toHaveBeenCalled(); expect(uploadFileSpy).not.toHaveBeenCalled(); }); + + test('should pass onItemShare prop to UploadsManagerBP', () => { + const onItemShare = jest.fn(); + const wrapper = getWrapper({ enableModernizedUploads: true, onItemShare }); + expect(wrapper.find(UploadsManagerBP).prop('onItemShare')).toBe(onItemShare); + }); + + test('should pass onItemOpen prop to UploadsManagerBP', () => { + const onItemOpen = jest.fn(); + const wrapper = getWrapper({ enableModernizedUploads: true, onItemOpen }); + expect(wrapper.find(UploadsManagerBP).prop('onItemOpen')).toBe(onItemOpen); + }); + + test('should default onItemShare to noop when not provided', () => { + const wrapper = getWrapper({ enableModernizedUploads: true }); + expect(() => wrapper.find(UploadsManagerBP).prop('onItemShare')('item-id')).not.toThrow(); + }); + + test('should default onItemOpen to noop when not provided', () => { + const wrapper = getWrapper({ enableModernizedUploads: true }); + expect(() => wrapper.find(UploadsManagerBP).prop('onItemOpen')('item-id')).not.toThrow(); + }); }); }); });