@atlaskit/media-viewer 53.2.5 → 54.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (147) hide show
  1. package/AGENTS.md +62 -0
  2. package/CHANGELOG.md +38 -0
  3. package/classnames/package.json +1 -8
  4. package/dist/cjs/analytics/index.js +1 -1
  5. package/dist/cjs/analytics/ufoExperiences.js +1 -1
  6. package/dist/cjs/components/media-viewer.js +4 -2
  7. package/dist/cjs/download.js +2 -2
  8. package/dist/cjs/header.js +27 -2
  9. package/dist/cjs/list.js +4 -2
  10. package/dist/cjs/media-viewer.js +4 -2
  11. package/dist/cjs/utils/getObjectUrlFromFileState.js +15 -16
  12. package/dist/cjs/utils/index.js +16 -17
  13. package/dist/cjs/viewers/archiveSidebar/archive-sidebar-folder-entry.js +11 -11
  14. package/dist/cjs/viewers/archiveSidebar/archive-sidebar-renderer.js +12 -12
  15. package/dist/cjs/viewers/archiveSidebar/archive-sidebar.js +28 -28
  16. package/dist/cjs/viewers/archiveSidebar/archive.js +29 -29
  17. package/dist/cjs/viewers/archiveSidebar/archiveViewerLoader.js +12 -12
  18. package/dist/cjs/viewers/audio.js +37 -37
  19. package/dist/cjs/viewers/codeViewer/codeViewerRenderer-compiled.js +2 -2
  20. package/dist/cjs/viewers/codeViewer/index.js +35 -35
  21. package/dist/cjs/viewers/doc/doc-viewer.js +29 -27
  22. package/dist/cjs/viewers/doc/index.js +2 -2
  23. package/dist/cjs/viewers/image/index.js +43 -44
  24. package/dist/cjs/viewers/video.js +20 -20
  25. package/dist/es2019/analytics/index.js +1 -1
  26. package/dist/es2019/analytics/ufoExperiences.js +1 -1
  27. package/dist/es2019/components/media-viewer.js +4 -2
  28. package/dist/es2019/header.js +24 -2
  29. package/dist/es2019/list.js +4 -2
  30. package/dist/es2019/media-viewer.js +4 -2
  31. package/dist/esm/analytics/index.js +1 -1
  32. package/dist/esm/analytics/ufoExperiences.js +1 -1
  33. package/dist/esm/components/media-viewer.js +4 -2
  34. package/dist/esm/download.js +2 -2
  35. package/dist/esm/header.js +27 -2
  36. package/dist/esm/list.js +4 -2
  37. package/dist/esm/media-viewer.js +4 -2
  38. package/dist/esm/utils/getObjectUrlFromFileState.js +15 -16
  39. package/dist/esm/utils/index.js +16 -17
  40. package/dist/esm/viewers/archiveSidebar/archive-sidebar-folder-entry.js +11 -11
  41. package/dist/esm/viewers/archiveSidebar/archive-sidebar-renderer.js +11 -11
  42. package/dist/esm/viewers/archiveSidebar/archive-sidebar.js +28 -28
  43. package/dist/esm/viewers/archiveSidebar/archive.js +29 -29
  44. package/dist/esm/viewers/archiveSidebar/archiveViewerLoader.js +11 -11
  45. package/dist/esm/viewers/audio.js +37 -37
  46. package/dist/esm/viewers/codeViewer/codeViewerRenderer-compiled.js +2 -2
  47. package/dist/esm/viewers/codeViewer/index.js +34 -34
  48. package/dist/esm/viewers/doc/doc-viewer.js +28 -26
  49. package/dist/esm/viewers/doc/index.js +2 -2
  50. package/dist/esm/viewers/image/index.js +43 -44
  51. package/dist/esm/viewers/video.js +20 -20
  52. package/dist/types/components/media-viewer.d.ts +1 -1
  53. package/dist/types/components/types.d.ts +1 -0
  54. package/dist/types/header.d.ts +2 -1
  55. package/dist/types/list.d.ts +2 -1
  56. package/dist/types/media-viewer.d.ts +1 -0
  57. package/media-viewer-loader/package.json +1 -8
  58. package/package.json +34 -42
  59. package/types/package.json +1 -8
  60. package/viewer-options/package.json +1 -8
  61. package/dist/types-ts4.5/analytics/events/index.d.ts +0 -17
  62. package/dist/types-ts4.5/analytics/events/operational/_mediaFile.d.ts +0 -3
  63. package/dist/types-ts4.5/analytics/events/operational/commenced.d.ts +0 -5
  64. package/dist/types-ts4.5/analytics/events/operational/download.d.ts +0 -9
  65. package/dist/types-ts4.5/analytics/events/operational/loadFailed.d.ts +0 -7
  66. package/dist/types-ts4.5/analytics/events/operational/loadSucceeded.d.ts +0 -11
  67. package/dist/types-ts4.5/analytics/events/operational/previewUnsupported.d.ts +0 -6
  68. package/dist/types-ts4.5/analytics/events/operational/zipEntryLoadFailed.d.ts +0 -13
  69. package/dist/types-ts4.5/analytics/events/operational/zipEntryLoadSucceeded.d.ts +0 -12
  70. package/dist/types-ts4.5/analytics/events/screen/modal.d.ts +0 -3
  71. package/dist/types-ts4.5/analytics/events/screen/passwordPdf.d.ts +0 -3
  72. package/dist/types-ts4.5/analytics/events/screen/pdfPasswordInput.d.ts +0 -3
  73. package/dist/types-ts4.5/analytics/events/ui/_clickedButton.d.ts +0 -2
  74. package/dist/types-ts4.5/analytics/events/ui/closed.d.ts +0 -8
  75. package/dist/types-ts4.5/analytics/events/ui/downloadButtonClicked.d.ts +0 -8
  76. package/dist/types-ts4.5/analytics/events/ui/failedPreviewDownloadButtonClicked.d.ts +0 -10
  77. package/dist/types-ts4.5/analytics/events/ui/navigated.d.ts +0 -12
  78. package/dist/types-ts4.5/analytics/events/ui/zoomInButtonClicked.d.ts +0 -8
  79. package/dist/types-ts4.5/analytics/events/ui/zoomOutButtonClicked.d.ts +0 -6
  80. package/dist/types-ts4.5/analytics/index.d.ts +0 -17
  81. package/dist/types-ts4.5/analytics/ufoExperiences.d.ts +0 -19
  82. package/dist/types-ts4.5/classnames.d.ts +0 -5
  83. package/dist/types-ts4.5/components/media-viewer-error-boundary.d.ts +0 -3
  84. package/dist/types-ts4.5/components/media-viewer-loader.d.ts +0 -3
  85. package/dist/types-ts4.5/components/media-viewer.d.ts +0 -5
  86. package/dist/types-ts4.5/components/portal.d.ts +0 -4
  87. package/dist/types-ts4.5/components/types.d.ts +0 -45
  88. package/dist/types-ts4.5/content.d.ts +0 -11
  89. package/dist/types-ts4.5/domain/index.d.ts +0 -1
  90. package/dist/types-ts4.5/domain/outcome.d.ts +0 -31
  91. package/dist/types-ts4.5/domain/zoomLevel.d.ts +0 -15
  92. package/dist/types-ts4.5/download.d.ts +0 -20
  93. package/dist/types-ts4.5/error-images.d.ts +0 -2
  94. package/dist/types-ts4.5/errorMessage.d.ts +0 -33
  95. package/dist/types-ts4.5/errors.d.ts +0 -23
  96. package/dist/types-ts4.5/header.d.ts +0 -19
  97. package/dist/types-ts4.5/index.d.ts +0 -3
  98. package/dist/types-ts4.5/item-viewer.d.ts +0 -32
  99. package/dist/types-ts4.5/list.d.ts +0 -24
  100. package/dist/types-ts4.5/loading.d.ts +0 -2
  101. package/dist/types-ts4.5/media-viewer.d.ts +0 -16
  102. package/dist/types-ts4.5/navigation.d.ts +0 -25
  103. package/dist/types-ts4.5/styleWrappers.d.ts +0 -122
  104. package/dist/types-ts4.5/styles.d.ts +0 -2
  105. package/dist/types-ts4.5/utils/closeOnDirectClick.d.ts +0 -2
  106. package/dist/types-ts4.5/utils/getIdentifierCollection.d.ts +0 -2
  107. package/dist/types-ts4.5/utils/getObjectUrlFromFileState.d.ts +0 -2
  108. package/dist/types-ts4.5/utils/index.d.ts +0 -10
  109. package/dist/types-ts4.5/utils/isIE.d.ts +0 -1
  110. package/dist/types-ts4.5/viewerOptions.d.ts +0 -20
  111. package/dist/types-ts4.5/viewers/archiveSidebar/archive-download-button.d.ts +0 -8
  112. package/dist/types-ts4.5/viewers/archiveSidebar/archive-sidebar-folder-entry.d.ts +0 -24
  113. package/dist/types-ts4.5/viewers/archiveSidebar/archive-sidebar-header.d.ts +0 -9
  114. package/dist/types-ts4.5/viewers/archiveSidebar/archive-sidebar-renderer.d.ts +0 -26
  115. package/dist/types-ts4.5/viewers/archiveSidebar/archive-sidebar.d.ts +0 -28
  116. package/dist/types-ts4.5/viewers/archiveSidebar/archive.d.ts +0 -37
  117. package/dist/types-ts4.5/viewers/archiveSidebar/archiveViewerLoader.d.ts +0 -12
  118. package/dist/types-ts4.5/viewers/archiveSidebar/consts.d.ts +0 -2
  119. package/dist/types-ts4.5/viewers/archiveSidebar/custom-button-item.d.ts +0 -2
  120. package/dist/types-ts4.5/viewers/archiveSidebar/nativePdfViewer.d.ts +0 -9
  121. package/dist/types-ts4.5/viewers/archiveSidebar/styleWrappers.d.ts +0 -30
  122. package/dist/types-ts4.5/viewers/archiveSidebar/styles.d.ts +0 -1
  123. package/dist/types-ts4.5/viewers/archiveSidebar/types.d.ts +0 -13
  124. package/dist/types-ts4.5/viewers/audio.d.ts +0 -33
  125. package/dist/types-ts4.5/viewers/base-viewer.d.ts +0 -32
  126. package/dist/types-ts4.5/viewers/codeViewer/CodeRendererAdvanced/CodeRendererAdvanced.d.ts +0 -11
  127. package/dist/types-ts4.5/viewers/codeViewer/CodeRendererAdvanced/theme.d.ts +0 -4
  128. package/dist/types-ts4.5/viewers/codeViewer/codeViewerRenderer-compiled.d.ts +0 -29
  129. package/dist/types-ts4.5/viewers/codeViewer/codeViewerRenderer.d.ts +0 -23
  130. package/dist/types-ts4.5/viewers/codeViewer/index.d.ts +0 -27
  131. package/dist/types-ts4.5/viewers/codeViewer/msg-parser.d.ts +0 -8
  132. package/dist/types-ts4.5/viewers/codeViewer/styles.d.ts +0 -4
  133. package/dist/types-ts4.5/viewers/codeViewer/util.d.ts +0 -4
  134. package/dist/types-ts4.5/viewers/customViewer/customViewer.d.ts +0 -13
  135. package/dist/types-ts4.5/viewers/doc/doc-viewer.d.ts +0 -13
  136. package/dist/types-ts4.5/viewers/doc/index.d.ts +0 -36
  137. package/dist/types-ts4.5/viewers/doc/passwordInput.d.ts +0 -10
  138. package/dist/types-ts4.5/viewers/image/index.d.ts +0 -35
  139. package/dist/types-ts4.5/viewers/image/interactive-img.d.ts +0 -42
  140. package/dist/types-ts4.5/viewers/modalSpinner.d.ts +0 -8
  141. package/dist/types-ts4.5/viewers/svg/ImageWrapper-compiled.d.ts +0 -7
  142. package/dist/types-ts4.5/viewers/svg/ImageWrapper.d.ts +0 -7
  143. package/dist/types-ts4.5/viewers/svg/errors.d.ts +0 -3
  144. package/dist/types-ts4.5/viewers/svg/index.d.ts +0 -14
  145. package/dist/types-ts4.5/viewers/svg/utils.d.ts +0 -5
  146. package/dist/types-ts4.5/viewers/video.d.ts +0 -32
  147. package/dist/types-ts4.5/zoomControls.d.ts +0 -15
@@ -56,7 +56,7 @@ var DocViewer = exports.DocViewer = /*#__PURE__*/function (_BaseViewer) {
56
56
  value: function () {
57
57
  var _init = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
58
58
  var item;
59
- return _regenerator.default.wrap(function _callee$(_context) {
59
+ return _regenerator.default.wrap(function (_context) {
60
60
  while (1) switch (_context.prev = _context.next) {
61
61
  case 0:
62
62
  item = this.props.item;
@@ -66,7 +66,7 @@ var DocViewer = exports.DocViewer = /*#__PURE__*/function (_BaseViewer) {
66
66
  if ((0, _platformFeatureFlags.fg)('download_event_for_jira_attachments')) {
67
67
  this.onMediaDisplayed();
68
68
  }
69
- case 3:
69
+ case 1:
70
70
  case "end":
71
71
  return _context.stop();
72
72
  }
@@ -60,63 +60,63 @@ var ImageViewer = exports.ImageViewer = /*#__PURE__*/function (_BaseViewer) {
60
60
  key: "init",
61
61
  value: function () {
62
62
  var _init = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
63
- var _this$props, fileState, mediaClient, collectionName, traceContext, controller, orientation, objectUrl, originalBinaryImageUrl, isLocalFileReference, clientId, preview, _yield$preview, value, origin, item, response, imgError;
64
- return _regenerator.default.wrap(function _callee$(_context) {
63
+ var _this$props, fileState, mediaClient, collectionName, traceContext, controller, orientation, objectUrl, originalBinaryImageUrl, isLocalFileReference, clientId, preview, _yield$preview, value, origin, item, response, imgError, _t, _t2, _t3;
64
+ return _regenerator.default.wrap(function (_context) {
65
65
  while (1) switch (_context.prev = _context.next) {
66
66
  case 0:
67
67
  _this$props = this.props, fileState = _this$props.item, mediaClient = _this$props.mediaClient, collectionName = _this$props.collectionName, traceContext = _this$props.traceContext;
68
68
  if (!(0, _mediaClient.isErrorFileState)(fileState)) {
69
- _context.next = 3;
69
+ _context.next = 1;
70
70
  break;
71
71
  }
72
72
  return _context.abrupt("return");
73
- case 3:
73
+ case 1:
74
74
  controller = typeof AbortController !== 'undefined' ? new AbortController() : undefined;
75
- _context.prev = 4;
75
+ _context.prev = 2;
76
76
  orientation = 1;
77
77
  isLocalFileReference = false;
78
- _context.prev = 7;
79
- _context.next = 10;
78
+ _context.prev = 3;
79
+ _context.next = 4;
80
80
  return mediaClient.getClientId(collectionName);
81
- case 10:
81
+ case 4:
82
82
  clientId = _context.sent;
83
- _context.next = 15;
83
+ _context.next = 6;
84
84
  break;
85
- case 13:
86
- _context.prev = 13;
87
- _context.t0 = _context["catch"](7);
88
- case 15:
85
+ case 5:
86
+ _context.prev = 5;
87
+ _t = _context["catch"](3);
88
+ case 6:
89
89
  preview = fileState.preview;
90
90
  if (!preview) {
91
- _context.next = 33;
91
+ _context.next = 11;
92
92
  break;
93
93
  }
94
- _context.next = 19;
94
+ _context.next = 7;
95
95
  return preview;
96
- case 19:
96
+ case 7:
97
97
  _yield$preview = _context.sent;
98
98
  value = _yield$preview.value;
99
99
  origin = _yield$preview.origin;
100
100
  if (!(value instanceof Blob)) {
101
- _context.next = 30;
101
+ _context.next = 9;
102
102
  break;
103
103
  }
104
- _context.next = 25;
104
+ _context.next = 8;
105
105
  return (0, _mediaUi.getOrientation)(value);
106
- case 25:
106
+ case 8:
107
107
  orientation = _context.sent;
108
108
  objectUrl = URL.createObjectURL(value);
109
109
  isLocalFileReference = origin === 'local';
110
- _context.next = 31;
110
+ _context.next = 10;
111
111
  break;
112
- case 30:
112
+ case 9:
113
113
  objectUrl = value;
114
- case 31:
115
- _context.next = 46;
114
+ case 10:
115
+ _context.next = 14;
116
116
  break;
117
- case 33:
117
+ case 11:
118
118
  if (!(0, _mediaClient.isImageRepresentationReady)(fileState)) {
119
- _context.next = 44;
119
+ _context.next = 13;
120
120
  break;
121
121
  }
122
122
  item = processedFileStateToMediaItem(fileState);
@@ -127,31 +127,30 @@ var ImageViewer = exports.ImageViewer = /*#__PURE__*/function (_BaseViewer) {
127
127
  this.cancelImageFetch = function () {
128
128
  return controller === null || controller === void 0 ? void 0 : controller.abort();
129
129
  };
130
- _context.t1 = URL;
131
- _context.next = 40;
130
+ _t2 = URL;
131
+ _context.next = 12;
132
132
  return response;
133
- case 40:
134
- _context.t2 = _context.sent;
135
- objectUrl = _context.t1.createObjectURL.call(_context.t1, _context.t2);
136
- _context.next = 46;
133
+ case 12:
134
+ objectUrl = _t2.createObjectURL.call(_t2, _context.sent);
135
+ _context.next = 14;
137
136
  break;
138
- case 44:
137
+ case 13:
139
138
  this.setState({
140
139
  content: _domain.Outcome.pending()
141
140
  });
142
141
  return _context.abrupt("return");
143
- case 46:
142
+ case 14:
144
143
  if (!(!isLocalFileReference &&
145
144
  // objectUrl at this point is binary file already
146
145
  !(0, _mediaClient.isErrorFileState)(fileState) && fileState.status !== 'uploading' && fileState.mediaType === 'image' && (0, _mediaCommon.isImageMimeTypeSupportedByBrowser)(fileState.mimeType))) {
147
- _context.next = 50;
146
+ _context.next = 16;
148
147
  break;
149
148
  }
150
- _context.next = 49;
149
+ _context.next = 15;
151
150
  return mediaClient.file.getFileBinaryURL(fileState.id, collectionName);
152
- case 49:
151
+ case 15:
153
152
  originalBinaryImageUrl = _context.sent;
154
- case 50:
153
+ case 16:
155
154
  this.setState({
156
155
  content: _domain.Outcome.successful({
157
156
  objectUrl: objectUrl,
@@ -160,24 +159,24 @@ var ImageViewer = exports.ImageViewer = /*#__PURE__*/function (_BaseViewer) {
160
159
  clientId: clientId
161
160
  })
162
161
  });
163
- _context.next = 56;
162
+ _context.next = 18;
164
163
  break;
165
- case 53:
166
- _context.prev = 53;
167
- _context.t3 = _context["catch"](4);
164
+ case 17:
165
+ _context.prev = 17;
166
+ _t3 = _context["catch"](2);
168
167
  // TODO : properly handle aborted requests (MS-2843)
169
168
  if (!(controller !== null && controller !== void 0 && controller.signal.aborted)) {
170
- imgError = new _errors.MediaViewerError('imageviewer-fetch-url', _context.t3 instanceof Error ? _context.t3 : undefined);
169
+ imgError = new _errors.MediaViewerError('imageviewer-fetch-url', _t3 instanceof Error ? _t3 : undefined);
171
170
  this.setState({
172
171
  content: _domain.Outcome.failed(imgError)
173
172
  });
174
173
  this.props.onError(imgError);
175
174
  }
176
- case 56:
175
+ case 18:
177
176
  case "end":
178
177
  return _context.stop();
179
178
  }
180
- }, _callee, this, [[4, 53], [7, 13]]);
179
+ }, _callee, this, [[2, 17], [3, 5]]);
181
180
  }));
182
181
  function init() {
183
182
  return _init.apply(this, arguments);
@@ -123,58 +123,58 @@ var VideoViewer = exports.VideoViewer = /*#__PURE__*/function (_BaseViewer) {
123
123
  key: "init",
124
124
  value: function () {
125
125
  var _init = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
126
- var _this$props3, mediaClient, item, collectionName, contentUrl;
127
- return _regenerator.default.wrap(function _callee$(_context) {
126
+ var _this$props3, mediaClient, item, collectionName, contentUrl, _t;
127
+ return _regenerator.default.wrap(function (_context) {
128
128
  while (1) switch (_context.prev = _context.next) {
129
129
  case 0:
130
130
  _this$props3 = this.props, mediaClient = _this$props3.mediaClient, item = _this$props3.item, collectionName = _this$props3.collectionName;
131
131
  _context.prev = 1;
132
132
  if (!(item.status === 'processed')) {
133
- _context.next = 10;
133
+ _context.next = 4;
134
134
  break;
135
135
  }
136
- _context.next = 5;
136
+ _context.next = 2;
137
137
  return mediaClient.file.getArtifactURL(item.artifacts, hdArtifact, collectionName);
138
- case 5:
138
+ case 2:
139
139
  contentUrl = _context.sent;
140
140
  if (contentUrl) {
141
- _context.next = 8;
141
+ _context.next = 3;
142
142
  break;
143
143
  }
144
144
  throw new _errors.MediaViewerError("videoviewer-missing-artefact");
145
- case 8:
146
- _context.next = 16;
145
+ case 3:
146
+ _context.next = 6;
147
147
  break;
148
- case 10:
149
- _context.next = 12;
148
+ case 4:
149
+ _context.next = 5;
150
150
  return (0, _getObjectUrlFromFileState.getObjectUrlFromFileState)(item);
151
- case 12:
151
+ case 5:
152
152
  contentUrl = _context.sent;
153
153
  if (contentUrl) {
154
- _context.next = 16;
154
+ _context.next = 6;
155
155
  break;
156
156
  }
157
157
  this.setState({
158
158
  content: _domain.Outcome.pending()
159
159
  });
160
160
  return _context.abrupt("return");
161
- case 16:
161
+ case 6:
162
162
  this.setState({
163
163
  content: _domain.Outcome.successful(contentUrl)
164
164
  });
165
- _context.next = 22;
165
+ _context.next = 8;
166
166
  break;
167
- case 19:
168
- _context.prev = 19;
169
- _context.t0 = _context["catch"](1);
167
+ case 7:
168
+ _context.prev = 7;
169
+ _t = _context["catch"](1);
170
170
  this.setState({
171
- content: _domain.Outcome.failed(new _errors.MediaViewerError('videoviewer-fetch-url', _context.t0 instanceof Error ? _context.t0 : undefined))
171
+ content: _domain.Outcome.failed(new _errors.MediaViewerError('videoviewer-fetch-url', _t instanceof Error ? _t : undefined))
172
172
  });
173
- case 22:
173
+ case 8:
174
174
  case "end":
175
175
  return _context.stop();
176
176
  }
177
- }, _callee, this, [[1, 19]]);
177
+ }, _callee, this, [[1, 7]]);
178
178
  }));
179
179
  function init() {
180
180
  return _init.apply(this, arguments);
@@ -1,7 +1,7 @@
1
1
  import { ANALYTICS_MEDIA_CHANNEL, sanitiseAnalyticsPayload } from '@atlaskit/media-common/analytics';
2
2
  const componentName = 'mediaViewer';
3
3
  const packageName = "@atlaskit/media-viewer";
4
- const packageVersion = "53.2.4";
4
+ const packageVersion = "54.0.0";
5
5
  export { packageName, packageVersion, componentName, componentName as component };
6
6
  export function getFileAttributes(fileState) {
7
7
  if (!fileState) {
@@ -3,7 +3,7 @@ import { getMediaEnvironment, getMediaRegion } from '@atlaskit/media-client';
3
3
  import { getFeatureFlagKeysAllProducts } from '@atlaskit/media-common';
4
4
  import { fg } from '@atlaskit/platform-feature-flags';
5
5
  const packageName = "@atlaskit/media-viewer";
6
- const packageVersion = "53.2.4";
6
+ const packageVersion = "54.0.0";
7
7
  let ufoExperience;
8
8
  const getExperience = () => {
9
9
  if (!ufoExperience) {
@@ -34,7 +34,8 @@ export const MediaViewerBase = ({
34
34
  items,
35
35
  extensions,
36
36
  contextId,
37
- viewerOptions
37
+ viewerOptions,
38
+ fallbackMediaNameFetcher
38
39
  }) => {
39
40
  const {
40
41
  items: normalisedItems,
@@ -68,7 +69,8 @@ export const MediaViewerBase = ({
68
69
  featureFlags: featureFlags,
69
70
  extensions: extensions,
70
71
  contextId: contextId,
71
- viewerOptions: viewerOptions
72
+ viewerOptions: viewerOptions,
73
+ fallbackMediaNameFetcher: fallbackMediaNameFetcher
72
74
  });
73
75
  };
74
76
 
@@ -10,6 +10,7 @@ import { useFileState, useMediaClient } from '@atlaskit/media-client-react';
10
10
  import { MimeTypeIcon } from '@atlaskit/media-ui/mime-type-icon';
11
11
  import { getFormat } from './viewers/codeViewer/util';
12
12
  import { MediaViewerError } from './errors';
13
+ import { expValEquals } from '@atlaskit/tmp-editor-statsig/exp-val-equals';
13
14
  export const Header = ({
14
15
  isArchiveSideBarVisible = false,
15
16
  extensions,
@@ -18,11 +19,15 @@ export const Header = ({
18
19
  identifier,
19
20
  onClose,
20
21
  onSetArchiveSideBarVisible,
21
- traceContext
22
+ traceContext,
23
+ fallbackMediaNameFetcher
22
24
  }) => {
23
25
  var _extensions$headerAct;
24
26
  // States
25
27
  const [item, setItem] = useState(Outcome.pending());
28
+ const [fallbackMediaName, setFallbackMediaName] = useState();
29
+ const fallbackMediaNameFetchAttempted = useRef(false);
30
+ const lastFetchedFileId = useRef();
26
31
 
27
32
  // Refs and Hooks
28
33
  const mediaClient = useMediaClient();
@@ -71,6 +76,23 @@ export const Header = ({
71
76
  setItem(Outcome.failed(new MediaViewerError('header-fetch-metadata', toCommonMediaClientError(fileState))));
72
77
  }
73
78
  }, [fileState, identifier]);
79
+ useEffect(() => {
80
+ // Reset fetch state when the file identity changes (e.g. navigating in viewer)
81
+ const currentId = (fileState === null || fileState === void 0 ? void 0 : fileState.status) !== 'error' ? fileState === null || fileState === void 0 ? void 0 : fileState.id : undefined;
82
+ if (currentId && currentId !== lastFetchedFileId.current && expValEquals('platform_editor_media_name_fallback_viewer_card', 'isEnabled', true)) {
83
+ fallbackMediaNameFetchAttempted.current = false;
84
+ setFallbackMediaName(undefined);
85
+ lastFetchedFileId.current = currentId;
86
+ }
87
+ if (fileState && fileState.status !== 'error' && !fileState.name && fallbackMediaNameFetcher && !fallbackMediaNameFetchAttempted.current && expValEquals('platform_editor_media_name_fallback_viewer_card', 'isEnabled', true)) {
88
+ fallbackMediaNameFetchAttempted.current = true;
89
+ fallbackMediaNameFetcher(fileState.id).then(name => {
90
+ setFallbackMediaName(name);
91
+ }, () => {
92
+ // Silently ignore fetch failures
93
+ });
94
+ }
95
+ }, [fileState, fallbackMediaNameFetcher]);
74
96
  const renderFileTypeText = item => {
75
97
  // render appropriate header if its a code/email item and the feature flag is enabled
76
98
  if (isCodeViewerItem(item.name, item.mimeType)) {
@@ -119,7 +141,7 @@ export const Header = ({
119
141
  name: item.name
120
142
  })), /*#__PURE__*/React.createElement(MedatadataTextWrapper, null, /*#__PURE__*/React.createElement(MetadataFileName, {
121
143
  "data-testid": "media-viewer-file-name"
122
- }, item.name || /*#__PURE__*/React.createElement(FormattedMessage, messages.unknown)), /*#__PURE__*/React.createElement(MetadataSubText, {
144
+ }, item.name || expValEquals('platform_editor_media_name_fallback_viewer_card', 'isEnabled', true) && fallbackMediaName || /*#__PURE__*/React.createElement(FormattedMessage, messages.unknown)), /*#__PURE__*/React.createElement(MetadataSubText, {
123
145
  "data-testid": "media-viewer-file-metadata-text"
124
146
  }, /*#__PURE__*/React.createElement(FormattedMessageWrapper, null, renderFileTypeText(item)), item.size ? ' · ' + toHumanReadableMediaSize(item.size) : ''))),
125
147
  pending: () => null,
@@ -16,7 +16,8 @@ export const List = ({
16
16
  isSidebarVisible,
17
17
  onNavigationChange,
18
18
  items,
19
- viewerOptions
19
+ viewerOptions,
20
+ fallbackMediaNameFetcher
20
21
  }) => {
21
22
  const [selectedItem, setSelectedItem] = useState(defaultSelectedItem);
22
23
  const [previewCount, setPreviewCount] = useState(0);
@@ -38,7 +39,8 @@ export const List = ({
38
39
  isArchiveSideBarVisible: isArchiveSideBarVisible,
39
40
  featureFlags: featureFlags,
40
41
  onSetArchiveSideBarVisible: setIsArchiveSideBarVisible,
41
- traceContext: traceContext.current
42
+ traceContext: traceContext.current,
43
+ fallbackMediaNameFetcher: fallbackMediaNameFetcher
42
44
  })), /*#__PURE__*/React.createElement(ItemViewer, {
43
45
  identifier: selectedItem,
44
46
  showControls: showControls,
@@ -22,7 +22,8 @@ const MediaViewerComponent = ({
22
22
  onClose,
23
23
  selectedItem,
24
24
  intl,
25
- viewerOptions
25
+ viewerOptions,
26
+ fallbackMediaNameFetcher
26
27
  }) => {
27
28
  const [isSidebarVisible, setIsSidebarVisible] = useState(false);
28
29
  const [selectedIdentifier, setSelectedIdentifier] = useState();
@@ -78,7 +79,8 @@ const MediaViewerComponent = ({
78
79
  isSidebarVisible: isSidebarVisible,
79
80
  contextId: contextId,
80
81
  featureFlags: featureFlags,
81
- viewerOptions: viewerOptions
82
+ viewerOptions: viewerOptions,
83
+ fallbackMediaNameFetcher: fallbackMediaNameFetcher
82
84
  })), renderSidebar()));
83
85
  return intl ? content : /*#__PURE__*/React.createElement(IntlProvider, {
84
86
  locale: "en"
@@ -1,7 +1,7 @@
1
1
  import { ANALYTICS_MEDIA_CHANNEL, sanitiseAnalyticsPayload } from '@atlaskit/media-common/analytics';
2
2
  var componentName = 'mediaViewer';
3
3
  var packageName = "@atlaskit/media-viewer";
4
- var packageVersion = "53.2.4";
4
+ var packageVersion = "54.0.0";
5
5
  export { packageName, packageVersion, componentName, componentName as component };
6
6
  export function getFileAttributes(fileState) {
7
7
  if (!fileState) {
@@ -6,7 +6,7 @@ import { getMediaEnvironment, getMediaRegion } from '@atlaskit/media-client';
6
6
  import { getFeatureFlagKeysAllProducts } from '@atlaskit/media-common';
7
7
  import { fg } from '@atlaskit/platform-feature-flags';
8
8
  var packageName = "@atlaskit/media-viewer";
9
- var packageVersion = "53.2.4";
9
+ var packageVersion = "54.0.0";
10
10
  var ufoExperience;
11
11
  var getExperience = function getExperience() {
12
12
  if (!ufoExperience) {
@@ -39,7 +39,8 @@ export var MediaViewerBase = function MediaViewerBase(_ref) {
39
39
  items = _ref.items,
40
40
  extensions = _ref.extensions,
41
41
  contextId = _ref.contextId,
42
- viewerOptions = _ref.viewerOptions;
42
+ viewerOptions = _ref.viewerOptions,
43
+ fallbackMediaNameFetcher = _ref.fallbackMediaNameFetcher;
43
44
  var _useMemo = useMemo(function () {
44
45
  return normaliseItems(items, selectedItem, collectionName);
45
46
  }, [items, selectedItem, collectionName]),
@@ -73,7 +74,8 @@ export var MediaViewerBase = function MediaViewerBase(_ref) {
73
74
  featureFlags: featureFlags,
74
75
  extensions: extensions,
75
76
  contextId: contextId,
76
- viewerOptions: viewerOptions
77
+ viewerOptions: viewerOptions,
78
+ fallbackMediaNameFetcher: fallbackMediaNameFetcher
77
79
  });
78
80
  };
79
81
 
@@ -48,7 +48,7 @@ function DownloadButton(_ref) {
48
48
  var createItemDownloader = function createItemDownloader(file, mediaClient, options) {
49
49
  return /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
50
50
  var collectionName, traceContext, createAnalyticsEvent, id, name;
51
- return _regeneratorRuntime.wrap(function _callee$(_context) {
51
+ return _regeneratorRuntime.wrap(function (_context) {
52
52
  while (1) switch (_context.prev = _context.next) {
53
53
  case 0:
54
54
  collectionName = options.collectionName, traceContext = options.traceContext, createAnalyticsEvent = options.createAnalyticsEvent;
@@ -59,7 +59,7 @@ var createItemDownloader = function createItemDownloader(file, mediaClient, opti
59
59
  }).catch(function (e) {
60
60
  fireAnalytics(createDownloadFailedEventPayload(file.id, new MediaViewerError('download', e), file, traceContext), createAnalyticsEvent);
61
61
  });
62
- case 4:
62
+ case 1:
63
63
  case "end":
64
64
  return _context.stop();
65
65
  }
@@ -11,6 +11,7 @@ import { useFileState, useMediaClient } from '@atlaskit/media-client-react';
11
11
  import { MimeTypeIcon } from '@atlaskit/media-ui/mime-type-icon';
12
12
  import { getFormat } from './viewers/codeViewer/util';
13
13
  import { MediaViewerError } from './errors';
14
+ import { expValEquals } from '@atlaskit/tmp-editor-statsig/exp-val-equals';
14
15
  export var Header = function Header(_ref) {
15
16
  var _extensions$headerAct;
16
17
  var _ref$isArchiveSideBar = _ref.isArchiveSideBarVisible,
@@ -21,12 +22,19 @@ export var Header = function Header(_ref) {
21
22
  identifier = _ref.identifier,
22
23
  onClose = _ref.onClose,
23
24
  onSetArchiveSideBarVisible = _ref.onSetArchiveSideBarVisible,
24
- traceContext = _ref.traceContext;
25
+ traceContext = _ref.traceContext,
26
+ fallbackMediaNameFetcher = _ref.fallbackMediaNameFetcher;
25
27
  // States
26
28
  var _useState = useState(Outcome.pending()),
27
29
  _useState2 = _slicedToArray(_useState, 2),
28
30
  item = _useState2[0],
29
31
  setItem = _useState2[1];
32
+ var _useState3 = useState(),
33
+ _useState4 = _slicedToArray(_useState3, 2),
34
+ fallbackMediaName = _useState4[0],
35
+ setFallbackMediaName = _useState4[1];
36
+ var fallbackMediaNameFetchAttempted = useRef(false);
37
+ var lastFetchedFileId = useRef();
30
38
 
31
39
  // Refs and Hooks
32
40
  var mediaClient = useMediaClient();
@@ -72,6 +80,23 @@ export var Header = function Header(_ref) {
72
80
  setItem(Outcome.failed(new MediaViewerError('header-fetch-metadata', toCommonMediaClientError(fileState))));
73
81
  }
74
82
  }, [fileState, identifier]);
83
+ useEffect(function () {
84
+ // Reset fetch state when the file identity changes (e.g. navigating in viewer)
85
+ var currentId = (fileState === null || fileState === void 0 ? void 0 : fileState.status) !== 'error' ? fileState === null || fileState === void 0 ? void 0 : fileState.id : undefined;
86
+ if (currentId && currentId !== lastFetchedFileId.current && expValEquals('platform_editor_media_name_fallback_viewer_card', 'isEnabled', true)) {
87
+ fallbackMediaNameFetchAttempted.current = false;
88
+ setFallbackMediaName(undefined);
89
+ lastFetchedFileId.current = currentId;
90
+ }
91
+ if (fileState && fileState.status !== 'error' && !fileState.name && fallbackMediaNameFetcher && !fallbackMediaNameFetchAttempted.current && expValEquals('platform_editor_media_name_fallback_viewer_card', 'isEnabled', true)) {
92
+ fallbackMediaNameFetchAttempted.current = true;
93
+ fallbackMediaNameFetcher(fileState.id).then(function (name) {
94
+ setFallbackMediaName(name);
95
+ }, function () {
96
+ // Silently ignore fetch failures
97
+ });
98
+ }
99
+ }, [fileState, fallbackMediaNameFetcher]);
75
100
  var renderFileTypeText = function renderFileTypeText(item) {
76
101
  // render appropriate header if its a code/email item and the feature flag is enabled
77
102
  if (isCodeViewerItem(item.name, item.mimeType)) {
@@ -119,7 +144,7 @@ export var Header = function Header(_ref) {
119
144
  name: item.name
120
145
  })), /*#__PURE__*/React.createElement(MedatadataTextWrapper, null, /*#__PURE__*/React.createElement(MetadataFileName, {
121
146
  "data-testid": "media-viewer-file-name"
122
- }, item.name || /*#__PURE__*/React.createElement(FormattedMessage, messages.unknown)), /*#__PURE__*/React.createElement(MetadataSubText, {
147
+ }, item.name || expValEquals('platform_editor_media_name_fallback_viewer_card', 'isEnabled', true) && fallbackMediaName || /*#__PURE__*/React.createElement(FormattedMessage, messages.unknown)), /*#__PURE__*/React.createElement(MetadataSubText, {
123
148
  "data-testid": "media-viewer-file-metadata-text"
124
149
  }, /*#__PURE__*/React.createElement(FormattedMessageWrapper, null, renderFileTypeText(item)), item.size ? ' · ' + toHumanReadableMediaSize(item.size) : '')));
125
150
  },
package/dist/esm/list.js CHANGED
@@ -17,7 +17,8 @@ export var List = function List(_ref) {
17
17
  isSidebarVisible = _ref.isSidebarVisible,
18
18
  onNavigationChange = _ref.onNavigationChange,
19
19
  items = _ref.items,
20
- viewerOptions = _ref.viewerOptions;
20
+ viewerOptions = _ref.viewerOptions,
21
+ fallbackMediaNameFetcher = _ref.fallbackMediaNameFetcher;
21
22
  var _useState = useState(defaultSelectedItem),
22
23
  _useState2 = _slicedToArray(_useState, 2),
23
24
  selectedItem = _useState2[0],
@@ -47,7 +48,8 @@ export var List = function List(_ref) {
47
48
  isArchiveSideBarVisible: isArchiveSideBarVisible,
48
49
  featureFlags: featureFlags,
49
50
  onSetArchiveSideBarVisible: setIsArchiveSideBarVisible,
50
- traceContext: traceContext.current
51
+ traceContext: traceContext.current,
52
+ fallbackMediaNameFetcher: fallbackMediaNameFetcher
51
53
  })), /*#__PURE__*/React.createElement(ItemViewer, {
52
54
  identifier: selectedItem,
53
55
  showControls: showControls,
@@ -23,7 +23,8 @@ var MediaViewerComponent = function MediaViewerComponent(_ref) {
23
23
  _onClose = _ref.onClose,
24
24
  selectedItem = _ref.selectedItem,
25
25
  intl = _ref.intl,
26
- viewerOptions = _ref.viewerOptions;
26
+ viewerOptions = _ref.viewerOptions,
27
+ fallbackMediaNameFetcher = _ref.fallbackMediaNameFetcher;
27
28
  var _useState = useState(false),
28
29
  _useState2 = _slicedToArray(_useState, 2),
29
30
  isSidebarVisible = _useState2[0],
@@ -87,7 +88,8 @@ var MediaViewerComponent = function MediaViewerComponent(_ref) {
87
88
  isSidebarVisible: isSidebarVisible,
88
89
  contextId: contextId,
89
90
  featureFlags: featureFlags,
90
- viewerOptions: viewerOptions
91
+ viewerOptions: viewerOptions,
92
+ fallbackMediaNameFetcher: fallbackMediaNameFetcher
91
93
  })), renderSidebar()));
92
94
  return intl ? content : /*#__PURE__*/React.createElement(IntlProvider, {
93
95
  locale: "en"
@@ -3,37 +3,36 @@ import _regeneratorRuntime from "@babel/runtime/regenerator";
3
3
  import { isErrorFileState } from '@atlaskit/media-client';
4
4
  export var getObjectUrlFromFileState = /*#__PURE__*/function () {
5
5
  var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(state) {
6
- var preview;
7
- return _regeneratorRuntime.wrap(function _callee$(_context) {
6
+ var preview, _t, _t2;
7
+ return _regeneratorRuntime.wrap(function (_context) {
8
8
  while (1) switch (_context.prev = _context.next) {
9
9
  case 0:
10
10
  if (isErrorFileState(state)) {
11
- _context.next = 14;
11
+ _context.next = 4;
12
12
  break;
13
13
  }
14
14
  preview = state.preview;
15
15
  if (!preview) {
16
- _context.next = 14;
16
+ _context.next = 4;
17
17
  break;
18
18
  }
19
- _context.prev = 3;
20
- _context.t0 = URL;
21
- _context.next = 7;
19
+ _context.prev = 1;
20
+ _t = URL;
21
+ _context.next = 2;
22
22
  return preview;
23
- case 7:
24
- _context.t1 = _context.sent.value;
25
- return _context.abrupt("return", _context.t0.createObjectURL.call(_context.t0, _context.t1));
26
- case 11:
27
- _context.prev = 11;
28
- _context.t2 = _context["catch"](3);
23
+ case 2:
24
+ return _context.abrupt("return", _t.createObjectURL.call(_t, _context.sent.value));
25
+ case 3:
26
+ _context.prev = 3;
27
+ _t2 = _context["catch"](1);
29
28
  return _context.abrupt("return", undefined);
30
- case 14:
29
+ case 4:
31
30
  return _context.abrupt("return", undefined);
32
- case 15:
31
+ case 5:
33
32
  case "end":
34
33
  return _context.stop();
35
34
  }
36
- }, _callee, null, [[3, 11]]);
35
+ }, _callee, null, [[1, 3]]);
37
36
  }));
38
37
  return function getObjectUrlFromFileState(_x) {
39
38
  return _ref.apply(this, arguments);