@atlaskit/media-card 78.13.0 → 78.14.1

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 (59) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/dist/cjs/card/card.js +1 -1
  3. package/dist/cjs/card/cardView.js +41 -13
  4. package/dist/cjs/card/fileCard.js +39 -82
  5. package/dist/cjs/card/inlinePlayerWrapper.js +18 -15
  6. package/dist/cjs/card/media-card-analytics-error-boundary.js +1 -1
  7. package/dist/cjs/card/svgView/errors.js +37 -1
  8. package/dist/cjs/card/svgView/svgView.js +41 -97
  9. package/dist/cjs/card/svgView/types.js +1 -0
  10. package/dist/cjs/card/svgView/useResolveSvg.js +115 -0
  11. package/dist/cjs/card/ui/unhandledErrorCard/index.js +1 -1
  12. package/dist/cjs/card/ui/wrapper/imageContainer.js +0 -1
  13. package/dist/cjs/card/ui/wrapper/wrapper.js +27 -24
  14. package/dist/cjs/inline/loader.js +1 -1
  15. package/dist/cjs/utils/preventClickThrough.js +11 -7
  16. package/dist/cjs/utils/ufoExperiences.js +1 -1
  17. package/dist/es2019/card/card.js +1 -1
  18. package/dist/es2019/card/cardView.js +36 -11
  19. package/dist/es2019/card/fileCard.js +28 -68
  20. package/dist/es2019/card/inlinePlayerWrapper.js +18 -15
  21. package/dist/es2019/card/media-card-analytics-error-boundary.js +1 -1
  22. package/dist/es2019/card/svgView/errors.js +18 -0
  23. package/dist/es2019/card/svgView/svgView.js +43 -91
  24. package/dist/es2019/card/svgView/types.js +0 -0
  25. package/dist/es2019/card/svgView/useResolveSvg.js +68 -0
  26. package/dist/es2019/card/ui/unhandledErrorCard/index.js +1 -1
  27. package/dist/es2019/card/ui/wrapper/imageContainer.js +0 -1
  28. package/dist/es2019/card/ui/wrapper/wrapper.js +27 -24
  29. package/dist/es2019/inline/loader.js +1 -1
  30. package/dist/es2019/utils/preventClickThrough.js +11 -7
  31. package/dist/es2019/utils/ufoExperiences.js +1 -1
  32. package/dist/esm/card/card.js +1 -1
  33. package/dist/esm/card/cardView.js +41 -13
  34. package/dist/esm/card/fileCard.js +40 -83
  35. package/dist/esm/card/inlinePlayerWrapper.js +18 -15
  36. package/dist/esm/card/media-card-analytics-error-boundary.js +1 -1
  37. package/dist/esm/card/svgView/errors.js +35 -0
  38. package/dist/esm/card/svgView/svgView.js +42 -97
  39. package/dist/esm/card/svgView/types.js +0 -0
  40. package/dist/esm/card/svgView/useResolveSvg.js +108 -0
  41. package/dist/esm/card/ui/unhandledErrorCard/index.js +1 -1
  42. package/dist/esm/card/ui/wrapper/imageContainer.js +0 -1
  43. package/dist/esm/card/ui/wrapper/wrapper.js +27 -24
  44. package/dist/esm/inline/loader.js +1 -1
  45. package/dist/esm/utils/preventClickThrough.js +11 -7
  46. package/dist/esm/utils/ufoExperiences.js +1 -1
  47. package/dist/types/card/cardView.d.ts +6 -2
  48. package/dist/types/card/svgView/errors.d.ts +7 -1
  49. package/dist/types/card/svgView/svgView.d.ts +7 -21
  50. package/dist/types/card/svgView/types.d.ts +1 -0
  51. package/dist/types/card/svgView/useResolveSvg.d.ts +7 -0
  52. package/dist/types/card/ui/wrapper/imageContainer.d.ts +1 -1
  53. package/dist/types-ts4.5/card/cardView.d.ts +6 -2
  54. package/dist/types-ts4.5/card/svgView/errors.d.ts +7 -1
  55. package/dist/types-ts4.5/card/svgView/svgView.d.ts +7 -21
  56. package/dist/types-ts4.5/card/svgView/types.d.ts +1 -0
  57. package/dist/types-ts4.5/card/svgView/useResolveSvg.d.ts +7 -0
  58. package/dist/types-ts4.5/card/ui/wrapper/imageContainer.d.ts +1 -1
  59. package/package.json +13 -11
package/CHANGELOG.md CHANGED
@@ -1,5 +1,23 @@
1
1
  # @atlaskit/media-card
2
2
 
3
+ ## 78.14.1
4
+
5
+ ### Patch Changes
6
+
7
+ - Updated dependencies
8
+
9
+ ## 78.14.0
10
+
11
+ ### Minor Changes
12
+
13
+ - [#162568](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/162568)
14
+ [`bdec058ec8fe8`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/bdec058ec8fe8) -
15
+ Added support for navite SVG rendering when overlay is enabled (Media Group)
16
+
17
+ ### Patch Changes
18
+
19
+ - Updated dependencies
20
+
3
21
  ## 78.13.0
4
22
 
5
23
  ### Minor Changes
@@ -22,7 +22,7 @@ var _excluded = ["identifier"];
22
22
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
23
23
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
24
24
  var packageName = "@atlaskit/media-card";
25
- var packageVersion = "78.13.0";
25
+ var packageVersion = "78.14.1";
26
26
  var CardBase = exports.CardBase = function CardBase(_ref) {
27
27
  var identifier = _ref.identifier,
28
28
  otherProps = (0, _objectWithoutProperties2.default)(_ref, _excluded);
@@ -32,6 +32,8 @@ var _classnames = require("./classnames");
32
32
  var _useBreakpoint = require("./useBreakpoint");
33
33
  var _openMediaViewerButton = _interopRequireDefault(require("./ui/openMediaViewerButton/openMediaViewerButton"));
34
34
  var _useCurrentValueRef = require("../utils/useCurrentValueRef");
35
+ var _svgView = require("./svgView");
36
+ var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
35
37
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
36
38
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
37
39
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
@@ -40,7 +42,8 @@ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t =
40
42
  * @jsx jsx
41
43
  */ // eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled -- Ignored via go/DSP-18766
42
44
  var CardViewBase = exports.CardViewBase = function CardViewBase(_ref) {
43
- var innerRef = _ref.innerRef,
45
+ var identifier = _ref.identifier,
46
+ innerRef = _ref.innerRef,
44
47
  onImageLoad = _ref.onImageLoad,
45
48
  onImageError = _ref.onImageError,
46
49
  dimensions = _ref.dimensions,
@@ -69,11 +72,17 @@ var CardViewBase = exports.CardViewBase = function CardViewBase(_ref) {
69
72
  _ref$openMediaViewerB = _ref.openMediaViewerButtonRef,
70
73
  openMediaViewerButtonRef = _ref$openMediaViewerB === void 0 ? null : _ref$openMediaViewerB,
71
74
  shouldOpenMediaViewer = _ref.shouldOpenMediaViewer,
72
- overriddenCreationDate = _ref.overriddenCreationDate;
75
+ overriddenCreationDate = _ref.overriddenCreationDate,
76
+ onSvgError = _ref.onSvgError,
77
+ onSvgLoad = _ref.onSvgLoad;
73
78
  var _useState = (0, _react2.useState)(false),
74
79
  _useState2 = (0, _slicedToArray2.default)(_useState, 2),
75
- didImageRender = _useState2[0],
76
- setDidImageRender = _useState2[1];
80
+ didSvgRender = _useState2[0],
81
+ setDidSvgRender = _useState2[1];
82
+ var _useState3 = (0, _react2.useState)(false),
83
+ _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
84
+ didImageRender = _useState4[0],
85
+ setDidImageRender = _useState4[1];
77
86
  var divRef = (0, _react2.useRef)(null);
78
87
  var prevCardPreviewRef = (0, _react2.useRef)();
79
88
  var breakpoint = (0, _useBreakpoint.useBreakpoint)(dimensions === null || dimensions === void 0 ? void 0 : dimensions.width, divRef);
@@ -118,16 +127,23 @@ var CardViewBase = exports.CardViewBase = function CardViewBase(_ref) {
118
127
  var getRenderConfigByStatus = function getRenderConfigByStatus() {
119
128
  var _ref3 = metadata || {},
120
129
  name = _ref3.name,
121
- mediaType = _ref3.mediaType;
130
+ mediaType = _ref3.mediaType,
131
+ mimeType = _ref3.mimeType;
122
132
  var isZeroSize = metadata && metadata.size === 0;
123
133
  var defaultConfig = {
124
- renderTypeIcon: !didImageRender,
125
- renderImageRenderer: true,
134
+ renderTypeIcon: !didImageRender && !didSvgRender,
135
+ renderImageRenderer: !didSvgRender,
136
+ renderSvgView: mimeType === 'image/svg+xml' && (0, _platformFeatureFlags.fg)('platform_media_group_svg'),
126
137
  renderPlayButton: !!cardPreview && mediaType === 'video',
127
138
  renderBlanket: !disableOverlay,
128
139
  renderTitleBox: !disableOverlay,
129
140
  renderTickBox: !disableOverlay && !!selectable
130
141
  };
142
+ var loadingConfig = _objectSpread(_objectSpread({}, defaultConfig), {}, {
143
+ renderPlayButton: false,
144
+ renderTypeIcon: false,
145
+ renderSpinner: !didImageRender && !didSvgRender
146
+ });
131
147
  switch (status) {
132
148
  case 'uploading':
133
149
  return _objectSpread(_objectSpread({}, defaultConfig), {}, {
@@ -145,9 +161,13 @@ var CardViewBase = exports.CardViewBase = function CardViewBase(_ref) {
145
161
  return defaultConfig;
146
162
  case 'error':
147
163
  case 'failed-processing':
164
+ if (status === 'failed-processing' && mimeType === 'image/svg+xml' && (0, _platformFeatureFlags.fg)('platform_media_group_svg')) {
165
+ return loadingConfig;
166
+ }
148
167
  var baseErrorConfig = _objectSpread(_objectSpread({}, defaultConfig), {}, {
149
168
  renderTypeIcon: true,
150
169
  renderImageRenderer: false,
170
+ renderSvgView: false,
151
171
  renderTitleBox: false,
152
172
  renderPlayButton: false
153
173
  });
@@ -176,17 +196,14 @@ var CardViewBase = exports.CardViewBase = function CardViewBase(_ref) {
176
196
  case 'loading-preview':
177
197
  case 'loading':
178
198
  default:
179
- return _objectSpread(_objectSpread({}, defaultConfig), {}, {
180
- renderPlayButton: false,
181
- renderTypeIcon: false,
182
- renderSpinner: !didImageRender
183
- });
199
+ return loadingConfig;
184
200
  }
185
201
  };
186
202
  var _getRenderConfigBySta = getRenderConfigByStatus(),
187
203
  renderTypeIcon = _getRenderConfigBySta.renderTypeIcon,
188
204
  iconMessage = _getRenderConfigBySta.iconMessage,
189
205
  renderImageRenderer = _getRenderConfigBySta.renderImageRenderer,
206
+ renderSvgView = _getRenderConfigBySta.renderSvgView,
190
207
  renderSpinner = _getRenderConfigBySta.renderSpinner,
191
208
  renderPlayButton = _getRenderConfigBySta.renderPlayButton,
192
209
  renderBlanket = _getRenderConfigBySta.renderBlanket,
@@ -228,7 +245,12 @@ var CardViewBase = exports.CardViewBase = function CardViewBase(_ref) {
228
245
  });
229
246
  });
230
247
  }, [actions, metadataRef]);
248
+ var onSvgLoadBase = function onSvgLoadBase() {
249
+ setDidSvgRender(true);
250
+ onSvgLoad === null || onSvgLoad === void 0 || onSvgLoad();
251
+ };
231
252
  var contents = (0, _react.jsx)(_react2.default.Fragment, null, (0, _react.jsx)(_wrapper.ImageContainer, {
253
+ centerElements: didSvgRender,
232
254
  testId: _classnames.fileCardImageViewSelector,
233
255
  mediaName: name,
234
256
  status: status,
@@ -249,7 +271,13 @@ var CardViewBase = exports.CardViewBase = function CardViewBase(_ref) {
249
271
  }, (0, _react.jsx)(_spinner.default, {
250
272
  testId: "media-card-loading",
251
273
  interactionName: "media-card-loading"
252
- })), renderImageRenderer && (0, _react.jsx)(_imageRenderer.ImageRenderer, {
274
+ })), renderSvgView && identifier && (0, _react.jsx)(_svgView.SvgView, {
275
+ identifier: identifier,
276
+ resizeMode: resizeMode || 'crop',
277
+ onError: onSvgError,
278
+ onLoad: onSvgLoadBase,
279
+ wrapperRef: divRef
280
+ }), renderImageRenderer && (0, _react.jsx)(_imageRenderer.ImageRenderer, {
253
281
  cardPreview: cardPreview,
254
282
  mediaType: (metadata === null || metadata === void 0 ? void 0 : metadata.mediaType) || 'unknown',
255
283
  alt: alt !== null && alt !== void 0 ? alt : name,
@@ -37,7 +37,7 @@ var _mediaFilePreview = require("@atlaskit/media-file-preview");
37
37
  var _actions = require("./actions");
38
38
  var _performance = require("./performance");
39
39
  var _dateOverrideContext = require("../dateOverrideContext");
40
- var _svgView = require("./svgView");
40
+ var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
41
41
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
42
42
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
43
43
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
@@ -109,9 +109,9 @@ var FileCard = exports.FileCard = function FileCard(_ref) {
109
109
  occurrenceKey: identifier.occurrenceKey
110
110
  }),
111
111
  fileState = _useFileState.fileState;
112
- var prevFileState = (0, _usePrevious.usePrevious)(fileState);
112
+ var prevFileState = (0, _usePrevious.usePrevious)(fileState && (0, _mediaClient.isErrorFileState)(fileState) ? undefined : fileState);
113
113
  var fileStateValue = (0, _react.useMemo)(function () {
114
- if (fileState && (fileState === null || fileState === void 0 ? void 0 : fileState.status) !== 'error') {
114
+ if (fileState && !(0, _mediaClient.isErrorFileState)(fileState)) {
115
115
  return fileState;
116
116
  }
117
117
  return prevFileState;
@@ -152,16 +152,12 @@ var FileCard = exports.FileCard = function FileCard(_ref) {
152
152
  setIsPlayingFile = _useState8[1];
153
153
  var _useState9 = (0, _react.useState)(false),
154
154
  _useState10 = (0, _slicedToArray2.default)(_useState9, 2),
155
- shouldRenderSVG = _useState10[0],
156
- setShouldRenderSVG = _useState10[1];
155
+ shouldAutoplay = _useState10[0],
156
+ setShouldAutoplay = _useState10[1];
157
157
  var _useState11 = (0, _react.useState)(false),
158
158
  _useState12 = (0, _slicedToArray2.default)(_useState11, 2),
159
- shouldAutoplay = _useState12[0],
160
- setShouldAutoplay = _useState12[1];
161
- var _useState13 = (0, _react.useState)(false),
162
- _useState14 = (0, _slicedToArray2.default)(_useState13, 2),
163
- previewDidRender = _useState14[0],
164
- setPreviewDidRender = _useState14[1];
159
+ previewDidRender = _useState12[0],
160
+ setPreviewDidRender = _useState12[1];
165
161
  var mediaBlobUrlAttrs = (0, _react.useMemo)(function () {
166
162
  var id = identifier.id,
167
163
  collection = identifier.collectionName;
@@ -198,18 +194,18 @@ var FileCard = exports.FileCard = function FileCard(_ref) {
198
194
  onImageErrorBase = _useFilePreview.onImageError,
199
195
  onImageLoadBase = _useFilePreview.onImageLoad,
200
196
  getSsrScriptProps = _useFilePreview.getSsrScriptProps;
201
- var _useState15 = (0, _react.useState)(),
202
- _useState16 = (0, _slicedToArray2.default)(_useState15, 2),
203
- error = _useState16[0],
204
- setError = _useState16[1];
197
+ var _useState13 = (0, _react.useState)(),
198
+ _useState14 = (0, _slicedToArray2.default)(_useState13, 2),
199
+ error = _useState14[0],
200
+ setError = _useState14[1];
205
201
 
206
202
  // CXP-2723 TODO: TEMPORARY VARIABLES
207
- var finalError = error || (previewError && previewError.primaryReason !== 'failed-processing' ? previewError : undefined);
208
- var finalStatus = finalError ? 'error' : status;
209
- var _useState17 = (0, _react.useState)(null),
210
- _useState18 = (0, _slicedToArray2.default)(_useState17, 2),
211
- mediaViewerSelectedItem = _useState18[0],
212
- setMediaViewerSelectedItem = _useState18[1];
203
+ var finalError = error || (previewError && previewError.primaryReason !== 'failed-processing' && ((fileStateValue === null || fileStateValue === void 0 ? void 0 : fileStateValue.mimeType) !== 'image/svg+xml' || !(0, _platformFeatureFlags.fg)('platform_media_group_svg')) ? previewError : undefined);
204
+ var finalStatus = finalError ? 'error' : status === 'failed-processing' && (fileStateValue === null || fileStateValue === void 0 ? void 0 : fileStateValue.mimeType) === 'image/svg+xml' && (0, _platformFeatureFlags.fg)('platform_media_group_svg') ? 'loading-preview' : status;
205
+ var _useState15 = (0, _react.useState)(null),
206
+ _useState16 = (0, _slicedToArray2.default)(_useState15, 2),
207
+ mediaViewerSelectedItem = _useState16[0],
208
+ setMediaViewerSelectedItem = _useState16[1];
213
209
  var uploadProgressRef = (0, _react.useRef)();
214
210
  var metadata = (0, _react.useMemo)(function () {
215
211
  var getProcessingStatusFromFileState = function getProcessingStatusFromFileState(status) {
@@ -222,7 +218,7 @@ var FileCard = exports.FileCard = function FileCard(_ref) {
222
218
  return 'failed';
223
219
  }
224
220
  };
225
- if (fileStateValue && (fileStateValue === null || fileStateValue === void 0 ? void 0 : fileStateValue.status) !== 'error') {
221
+ if (fileStateValue) {
226
222
  return {
227
223
  id: fileStateValue.id,
228
224
  name: fileStateValue.name,
@@ -342,10 +338,9 @@ var FileCard = exports.FileCard = function FileCard(_ref) {
342
338
  var onSvgError = function onSvgError(error) {
343
339
  setError(error);
344
340
  setStatus('error');
345
- setShouldRenderSVG(false);
346
341
  };
347
342
  var onImageError = function onImageError(newCardPreview) {
348
- if (metadata.mimeType === 'image/svg+xml') {
343
+ if (metadata.mimeType === 'image/svg+xml' && (0, _platformFeatureFlags.fg)('platform_media_group_svg')) {
349
344
  return;
350
345
  }
351
346
  onImageErrorBase(newCardPreview);
@@ -354,7 +349,7 @@ var FileCard = exports.FileCard = function FileCard(_ref) {
354
349
  setPreviewDidRender(true);
355
350
  };
356
351
  var onImageLoad = function onImageLoad(newCardPreview) {
357
- if (metadata.mimeType === 'image/svg+xml') {
352
+ if (metadata.mimeType === 'image/svg+xml' && (0, _platformFeatureFlags.fg)('platform_media_group_svg')) {
358
353
  return;
359
354
  }
360
355
  onImageLoadBase(newCardPreview);
@@ -443,19 +438,6 @@ var FileCard = exports.FileCard = function FileCard(_ref) {
443
438
  }
444
439
  }, [startUfoExperienceRef, isCardVisible, prevIsCardVisible]);
445
440
 
446
- //----------------------------------------------------------------//
447
- //----------------- set complete status --------------------------//
448
- //----------------------------------------------------------------//
449
-
450
- (0, _react.useEffect)(function () {
451
- if (previewDidRender &&
452
- // We should't complete if status is uploading
453
- ['loading-preview', 'processing'].includes(finalStatus)) {
454
- setStatus('complete');
455
- // TODO MEX-788: add test for "do not remove the card preview when unsubscribing".
456
- }
457
- }, [previewDidRender, finalStatus]);
458
-
459
441
  //----------------------------------------------------------------//
460
442
  //----------------- set isPlayingFile state ----------------------//
461
443
  //----------------------------------------------------------------//
@@ -476,23 +458,6 @@ var FileCard = exports.FileCard = function FileCard(_ref) {
476
458
  }
477
459
  }, [isCardVisible, disableOverlay, fileAttributes.fileMediatype, fileStateValue, identifier, isPlayingFile, finalStatus, useInlinePlayer]);
478
460
 
479
- //----------------------------------------------------------------//
480
- // Switch to SVG
481
- //----------------------------------------------------------------//
482
-
483
- (0, _react.useEffect)(function () {
484
- if (finalStatus !== 'error' &&
485
- /**
486
- * We need to check that the card is visible before switching to SVG
487
- * in order to avoid race conditions of the ViewportDector being unmounted before
488
- * it is able to set isCardVisible to true.
489
- */
490
- isCardVisible && metadata.mimeType === 'image/svg+xml' && disableOverlay // SVG won't be supported when overlay is on
491
- ) {
492
- setShouldRenderSVG(true);
493
- }
494
- }, [isCardVisible, disableOverlay, metadata.mimeType, finalStatus]);
495
-
496
461
  //----------------------------------------------------------------//
497
462
  //----------------- fireScreenEvent ------------------------------//
498
463
  //----------------------------------------------------------------//
@@ -517,15 +482,22 @@ var FileCard = exports.FileCard = function FileCard(_ref) {
517
482
  }, [fireAbortedEventRef]);
518
483
 
519
484
  //----------------------------------------------------------------//
520
- //------------------ Subscribe to file state ---------------------//
485
+ // Update Status
521
486
  //----------------------------------------------------------------//
522
487
 
523
488
  var updateFileStateRef = (0, _useCurrentValueRef.useCurrentValueRef)(function () {
524
- if (fileState) {
525
- // do not update the card status if the status is final
526
- if (['complete', 'error', 'failed-processing'].includes(finalStatus)) {
527
- return;
528
- }
489
+ // This effect has race condition with Complete effect. We share the same check to ovid status overrides
490
+
491
+ // do not update the card status if the status is final
492
+ if (['complete', 'error', 'failed-processing'].includes(finalStatus)) {
493
+ return;
494
+ }
495
+ if (previewDidRender &&
496
+ // We should't complete if status is uploading
497
+ ['loading-preview', 'processing'].includes(finalStatus)) {
498
+ setStatus('complete');
499
+ // TODO MEX-788: add test for "do not remove the card preview when unsubscribing".
500
+ } else if (fileState) {
529
501
  if (fileState.status !== 'error') {
530
502
  var newStatus;
531
503
  switch (fileState.status) {
@@ -558,7 +530,7 @@ var FileCard = exports.FileCard = function FileCard(_ref) {
558
530
  });
559
531
  (0, _react.useEffect)(function () {
560
532
  updateFileStateRef.current();
561
- }, [fileState, preview, previewStatus, updateFileStateRef]);
533
+ }, [fileState, preview, previewStatus, updateFileStateRef, previewDidRender, finalStatus]);
562
534
 
563
535
  //----------------------------------------------------------------//
564
536
  // Shared Card View & SVG View resources
@@ -592,6 +564,7 @@ var FileCard = exports.FileCard = function FileCard(_ref) {
592
564
  // Force Media Image to always display img for SSR
593
565
  var forceSyncDisplay = !!ssr;
594
566
  var card = /*#__PURE__*/_react.default.createElement(_cardView.CardView, {
567
+ identifier: identifier,
595
568
  status: cardStatusOverride || finalStatus,
596
569
  error: finalError,
597
570
  mediaItemType: mediaItemType,
@@ -624,6 +597,8 @@ var FileCard = exports.FileCard = function FileCard(_ref) {
624
597
  titleBoxIcon: titleBoxIcon,
625
598
  onImageError: withCallbacks ? onImageError : undefined,
626
599
  onImageLoad: withCallbacks ? onImageLoad : undefined,
600
+ onSvgError: onSvgError,
601
+ onSvgLoad: onSvgLoad,
627
602
  nativeLazyLoad: nativeLazyLoad,
628
603
  forceSyncDisplay: forceSyncDisplay,
629
604
  mediaCardCursor: mediaCardCursor,
@@ -642,7 +617,7 @@ var FileCard = exports.FileCard = function FileCard(_ref) {
642
617
  //-------------------------- RENDER ------------------------------//
643
618
  //----------------------------------------------------------------//
644
619
 
645
- var inlinePlayerFallback = renderCard(false, 'loading', false);
620
+ var inlinePlayerFallback = isPlayingFile ? renderCard(false, 'loading', false) : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null);
646
621
  var collectionName = identifier.collectionName || '';
647
622
  return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, isPlayingFile ? /*#__PURE__*/_react.default.createElement(_react.Suspense, {
648
623
  fallback: inlinePlayerFallback
@@ -663,25 +638,7 @@ var FileCard = exports.FileCard = function FileCard(_ref) {
663
638
  testId: testId,
664
639
  cardPreview: preview,
665
640
  videoControlsWrapperRef: videoControlsWrapperRef
666
- })) : shouldRenderSVG ? /*#__PURE__*/_react.default.createElement(_svgView.SvgView, {
667
- testId: testId,
668
- identifier: identifier,
669
- status: finalStatus,
670
- fileName: metadata.name,
671
- cardPreview: preview,
672
- alt: alt,
673
- resizeMode: resizeMode,
674
- cardDimensions: cardDimensions,
675
- selected: selected,
676
- onClick: onCardViewClick,
677
- onMouseEnter: onImageMouseEnter,
678
- progress: uploadProgressRef.current,
679
- onError: onSvgError,
680
- onLoad: onSvgLoad,
681
- mediaCardCursor: mediaCardCursor,
682
- shouldOpenMediaViewer: shouldOpenMediaViewer,
683
- openMediaViewerButtonRef: mediaViewerButtonRef
684
- }) : renderCard(), mediaViewerSelectedItem ? /*#__PURE__*/_reactDom.default.createPortal( /*#__PURE__*/_react.default.createElement(_mediaViewer.MediaViewer, {
641
+ })) : renderCard(), mediaViewerSelectedItem ? /*#__PURE__*/_reactDom.default.createPortal( /*#__PURE__*/_react.default.createElement(_mediaViewer.MediaViewer, {
685
642
  collectionName: collectionName,
686
643
  items: mediaViewerItems || [],
687
644
  mediaClientConfig: mediaClient.config,
@@ -21,19 +21,22 @@ var InlinePlayerWrapper = exports.InlinePlayerWrapper = function InlinePlayerWra
21
21
  dimensions = props.dimensions,
22
22
  onClick = props.onClick,
23
23
  innerRef = props.innerRef;
24
- return (0, _react.jsx)("div", (0, _extends2.default)({
25
- id: "inlinePlayerWrapper",
26
- "data-testid": testId
27
- // eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop -- Ignored via go/DSP-18766
28
- ,
29
- className: _inlinePlayerWrapperStyles.inlinePlayerClassName
30
- // eslint-disable-next-line @atlaskit/design-system/consistent-css-prop-usage, @atlaskit/ui-styling-standard/no-imported-style-values -- Ignored via go/DSP-18766
31
- ,
32
- css: (0, _inlinePlayerWrapperStyles.inlinePlayerWrapperStyles)({
33
- selected: selected,
34
- dimensions: dimensions
35
- }),
36
- onClick: onClick,
37
- ref: innerRef
38
- }, _vcMedia.VcMediaWrapperProps), props.children);
24
+ return (
25
+ // eslint-disable-next-line jsx-a11y/click-events-have-key-events, jsx-a11y/no-static-element-interactions
26
+ (0, _react.jsx)("div", (0, _extends2.default)({
27
+ id: "inlinePlayerWrapper",
28
+ "data-testid": testId
29
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop -- Ignored via go/DSP-18766
30
+ ,
31
+ className: _inlinePlayerWrapperStyles.inlinePlayerClassName
32
+ // eslint-disable-next-line @atlaskit/design-system/consistent-css-prop-usage, @atlaskit/ui-styling-standard/no-imported-style-values -- Ignored via go/DSP-18766
33
+ ,
34
+ css: (0, _inlinePlayerWrapperStyles.inlinePlayerWrapperStyles)({
35
+ selected: selected,
36
+ dimensions: dimensions
37
+ }),
38
+ onClick: onClick,
39
+ ref: innerRef
40
+ }, _vcMedia.VcMediaWrapperProps), props.children)
41
+ );
39
42
  };
@@ -90,7 +90,7 @@ var WrappedMediaCardAnalyticsErrorBoundary = /*#__PURE__*/function (_React$Compo
90
90
  }(_react.default.Component);
91
91
  (0, _defineProperty2.default)(WrappedMediaCardAnalyticsErrorBoundary, "displayName", 'MediaCardAnalyticsErrorBoundary');
92
92
  var packageName = "@atlaskit/media-card";
93
- var packageVersion = "78.13.0";
93
+ var packageVersion = "78.14.1";
94
94
 
95
95
  // @ts-ignore: [PIT-1685] Fails in post-office due to backwards incompatibility issue with React 18
96
96
  var MediaCardAnalyticsErrorBoundary = (0, _mediaCommon.withMediaAnalyticsContext)({
@@ -1,9 +1,19 @@
1
1
  "use strict";
2
2
 
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
3
4
  Object.defineProperty(exports, "__esModule", {
4
5
  value: true
5
6
  });
6
- exports.getErrorReason = void 0;
7
+ exports.getErrorReason = exports.createUnexpectedErrorCallback = exports.MediaSVGError = void 0;
8
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
9
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
10
+ var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
11
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
12
+ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
13
+ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
14
+ var _wrapNativeSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/wrapNativeSuper"));
15
+ function _createSuper(t) { var r = _isNativeReflectConstruct(); return function () { var e, o = (0, _getPrototypeOf2.default)(t); if (r) { var s = (0, _getPrototypeOf2.default)(this).constructor; e = Reflect.construct(o, arguments, s); } else e = o.apply(this, arguments); return (0, _possibleConstructorReturn2.default)(this, e); }; }
16
+ function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
7
17
  var getErrorReason = exports.getErrorReason = function getErrorReason(svgReason) {
8
18
  switch (svgReason) {
9
19
  case 'img-error':
@@ -13,4 +23,30 @@ var getErrorReason = exports.getErrorReason = function getErrorReason(svgReason)
13
23
  default:
14
24
  return 'svg-unknown-error';
15
25
  }
26
+ };
27
+ var MediaSVGError = exports.MediaSVGError = /*#__PURE__*/function (_Error) {
28
+ (0, _inherits2.default)(MediaSVGError, _Error);
29
+ var _super = _createSuper(MediaSVGError);
30
+ function MediaSVGError(primaryReason, secondaryError) {
31
+ var _this;
32
+ (0, _classCallCheck2.default)(this, MediaSVGError);
33
+ _this = _super.call(this, primaryReason);
34
+
35
+ // https://www.typescriptlang.org/docs/handbook/release-notes/typescript-2-2.html#support-for-newtarget
36
+ _this.primaryReason = primaryReason;
37
+ _this.secondaryError = secondaryError;
38
+ Object.setPrototypeOf((0, _assertThisInitialized2.default)(_this), (this instanceof MediaSVGError ? this.constructor : void 0).prototype);
39
+
40
+ // https://v8.dev/docs/stack-trace-api
41
+ if ('captureStackTrace' in Error) {
42
+ Error.captureStackTrace((0, _assertThisInitialized2.default)(_this), this instanceof MediaSVGError ? this.constructor : void 0);
43
+ }
44
+ return _this;
45
+ }
46
+ return (0, _createClass2.default)(MediaSVGError);
47
+ }( /*#__PURE__*/(0, _wrapNativeSuper2.default)(Error));
48
+ var createUnexpectedErrorCallback = exports.createUnexpectedErrorCallback = function createUnexpectedErrorCallback(onError) {
49
+ return function (e) {
50
+ onError === null || onError === void 0 || onError(new MediaSVGError('unexpected', e));
51
+ };
16
52
  };