@atlaskit/media-card 71.0.0 → 72.0.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.
- package/CHANGELOG.md +18 -0
- package/dist/cjs/errors.js +56 -5
- package/dist/cjs/files/cardImageView/index.js +53 -104
- package/dist/cjs/files/index.js +0 -6
- package/dist/cjs/root/card/cardAnalytics.js +3 -15
- package/dist/cjs/root/card/cardSSRView.js +4 -2
- package/dist/cjs/root/card/cardState.js +50 -0
- package/dist/cjs/root/card/getCardPreview/cache.js +5 -0
- package/dist/cjs/root/card/getCardPreview/filePreviewStatus.js +50 -0
- package/dist/cjs/root/card/getCardPreview/helpers.js +13 -21
- package/dist/cjs/root/card/getCardPreview/index.js +91 -94
- package/dist/cjs/root/card/getCardStatus.js +7 -1
- package/dist/cjs/root/card/index.js +271 -266
- package/dist/cjs/root/cardView.js +96 -60
- package/dist/cjs/root/inline/loader.js +2 -1
- package/dist/cjs/root/inline/mediaInlineCard.js +4 -3
- package/dist/cjs/root/ui/iconMessage/index.js +12 -5
- package/dist/cjs/root/ui/imageRenderer/imageRenderer.js +30 -124
- package/dist/cjs/root/ui/titleBox/failedTitleBox.js +7 -3
- package/dist/cjs/utils/analytics.js +6 -44
- package/dist/cjs/utils/dimensionComparer.js +1 -1
- package/dist/cjs/utils/metadata.js +11 -3
- package/dist/cjs/utils/objectURLCache.js +6 -0
- package/dist/cjs/utils/shouldDisplayImageThumbnail.js +1 -1
- package/dist/cjs/version.json +1 -1
- package/dist/es2019/errors.js +34 -2
- package/dist/es2019/files/cardImageView/index.js +8 -61
- package/dist/es2019/files/index.js +1 -1
- package/dist/es2019/root/card/cardAnalytics.js +3 -14
- package/dist/es2019/root/card/cardSSRView.js +3 -2
- package/dist/es2019/root/card/cardState.js +26 -0
- package/dist/es2019/root/card/getCardPreview/cache.js +5 -0
- package/dist/es2019/root/card/getCardPreview/filePreviewStatus.js +35 -0
- package/dist/es2019/root/card/getCardPreview/helpers.js +2 -12
- package/dist/es2019/root/card/getCardPreview/index.js +71 -74
- package/dist/es2019/root/card/getCardStatus.js +1 -0
- package/dist/es2019/root/card/index.js +193 -171
- package/dist/es2019/root/cardView.js +100 -61
- package/dist/es2019/root/inline/loader.js +2 -1
- package/dist/es2019/root/inline/mediaInlineCard.js +4 -3
- package/dist/es2019/root/ui/iconMessage/index.js +5 -3
- package/dist/es2019/root/ui/imageRenderer/imageRenderer.js +21 -88
- package/dist/es2019/root/ui/titleBox/failedTitleBox.js +5 -3
- package/dist/es2019/utils/analytics.js +5 -34
- package/dist/es2019/utils/dimensionComparer.js +1 -1
- package/dist/es2019/utils/metadata.js +12 -4
- package/dist/es2019/utils/objectURLCache.js +5 -0
- package/dist/es2019/utils/shouldDisplayImageThumbnail.js +1 -1
- package/dist/es2019/version.json +1 -1
- package/dist/esm/errors.js +42 -1
- package/dist/esm/files/cardImageView/index.js +51 -102
- package/dist/esm/files/index.js +1 -1
- package/dist/esm/root/card/cardAnalytics.js +3 -15
- package/dist/esm/root/card/cardSSRView.js +3 -2
- package/dist/esm/root/card/cardState.js +32 -0
- package/dist/esm/root/card/getCardPreview/cache.js +6 -0
- package/dist/esm/root/card/getCardPreview/filePreviewStatus.js +35 -0
- package/dist/esm/root/card/getCardPreview/helpers.js +13 -21
- package/dist/esm/root/card/getCardPreview/index.js +79 -88
- package/dist/esm/root/card/getCardStatus.js +3 -0
- package/dist/esm/root/card/index.js +278 -268
- package/dist/esm/root/cardView.js +98 -61
- package/dist/esm/root/inline/loader.js +2 -1
- package/dist/esm/root/inline/mediaInlineCard.js +4 -3
- package/dist/esm/root/ui/iconMessage/index.js +7 -3
- package/dist/esm/root/ui/imageRenderer/imageRenderer.js +23 -118
- package/dist/esm/root/ui/titleBox/failedTitleBox.js +6 -3
- package/dist/esm/utils/analytics.js +5 -36
- package/dist/esm/utils/dimensionComparer.js +1 -1
- package/dist/esm/utils/metadata.js +12 -4
- package/dist/esm/utils/objectURLCache.js +6 -0
- package/dist/esm/utils/shouldDisplayImageThumbnail.js +1 -1
- package/dist/esm/version.json +1 -1
- package/dist/types/errors.d.ts +9 -1
- package/dist/types/files/cardImageView/index.d.ts +4 -13
- package/dist/types/files/cardImageView/styled.d.ts +1 -1
- package/dist/types/files/index.d.ts +1 -1
- package/dist/types/index.d.ts +4 -3
- package/dist/types/root/card/cardAnalytics.d.ts +1 -6
- package/dist/types/root/card/cardSSRView.d.ts +1 -1
- package/dist/types/root/card/cardState.d.ts +5 -0
- package/dist/types/root/card/getCardPreview/cache.d.ts +3 -1
- package/dist/types/root/card/getCardPreview/filePreviewStatus.d.ts +5 -0
- package/dist/types/root/card/getCardPreview/helpers.d.ts +3 -4
- package/dist/types/root/card/getCardPreview/index.d.ts +17 -13
- package/dist/types/root/card/getCardStatus.d.ts +1 -0
- package/dist/types/root/card/index.d.ts +11 -10
- package/dist/types/root/cardView.d.ts +11 -8
- package/dist/types/root/inlinePlayer.d.ts +1 -1
- package/dist/types/root/ui/iconMessage/index.d.ts +2 -1
- package/dist/types/root/ui/imageRenderer/imageRenderer.d.ts +2 -13
- package/dist/types/root/ui/styledSSR.d.ts +1 -1
- package/dist/types/root/ui/titleBox/failedTitleBox.d.ts +2 -0
- package/dist/types/styles/mixins.d.ts +1 -1
- package/dist/types/types.d.ts +7 -1
- package/dist/types/utils/analytics.d.ts +6 -15
- package/dist/types/utils/cardDimensions.d.ts +4 -4
- package/dist/types/utils/dimensionComparer.d.ts +1 -1
- package/dist/types/utils/metadata.d.ts +2 -2
- package/dist/types/utils/objectURLCache.d.ts +2 -1
- package/example-helpers/index.tsx +21 -0
- package/package.json +6 -5
- package/dist/cjs/root/card/getCardPreview/types.js +0 -5
- package/dist/cjs/utils/fileAttributesContext.js +0 -40
- package/dist/es2019/root/card/getCardPreview/types.js +0 -1
- package/dist/es2019/utils/fileAttributesContext.js +0 -19
- package/dist/esm/root/card/getCardPreview/types.js +0 -1
- package/dist/esm/utils/fileAttributesContext.js +0 -18
- package/dist/types/root/card/getCardPreview/types.d.ts +0 -5
- package/dist/types/utils/fileAttributesContext.d.ts +0 -10
package/dist/esm/errors.js
CHANGED
|
@@ -70,6 +70,41 @@ export var RemotePreviewError = /*#__PURE__*/function (_MediaCardError2) {
|
|
|
70
70
|
|
|
71
71
|
return RemotePreviewError;
|
|
72
72
|
}(MediaCardError);
|
|
73
|
+
export var getImageLoadPrimaryReason = function getImageLoadPrimaryReason(source) {
|
|
74
|
+
switch (source) {
|
|
75
|
+
case 'cache-remote':
|
|
76
|
+
return 'cache-remote-uri';
|
|
77
|
+
|
|
78
|
+
case 'cache-local':
|
|
79
|
+
return 'cache-local-uri';
|
|
80
|
+
|
|
81
|
+
case 'external':
|
|
82
|
+
return 'external-uri';
|
|
83
|
+
|
|
84
|
+
case 'local':
|
|
85
|
+
return 'local-uri';
|
|
86
|
+
|
|
87
|
+
case 'remote':
|
|
88
|
+
return 'remote-uri';
|
|
89
|
+
// This fail reason will come from a bug, most likely.
|
|
90
|
+
|
|
91
|
+
default:
|
|
92
|
+
return "unknown-uri";
|
|
93
|
+
}
|
|
94
|
+
};
|
|
95
|
+
export var ImageLoadError = /*#__PURE__*/function (_MediaCardError3) {
|
|
96
|
+
_inherits(ImageLoadError, _MediaCardError3);
|
|
97
|
+
|
|
98
|
+
var _super4 = _createSuper(ImageLoadError);
|
|
99
|
+
|
|
100
|
+
function ImageLoadError(source) {
|
|
101
|
+
_classCallCheck(this, ImageLoadError);
|
|
102
|
+
|
|
103
|
+
return _super4.call(this, getImageLoadPrimaryReason(source));
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
return ImageLoadError;
|
|
107
|
+
}(MediaCardError);
|
|
73
108
|
export function isMediaCardError(err) {
|
|
74
109
|
return err instanceof MediaCardError;
|
|
75
110
|
}
|
|
@@ -81,9 +116,15 @@ export var isRemotePreviewError = function isRemotePreviewError(err) {
|
|
|
81
116
|
};
|
|
82
117
|
export var isUnsupportedLocalPreviewError = function isUnsupportedLocalPreviewError(err) {
|
|
83
118
|
return isMediaCardError(err) && err.primaryReason === 'local-preview-unsupported';
|
|
84
|
-
};
|
|
119
|
+
};
|
|
120
|
+
export function isImageLoadError(err) {
|
|
121
|
+
return err instanceof ImageLoadError;
|
|
122
|
+
} // In a try/catch statement, the error caught is the type of any.
|
|
85
123
|
// We can use this helper to ensure that the error handled is the type of MediaCardError if unsure
|
|
86
124
|
|
|
87
125
|
export var ensureMediaCardError = function ensureMediaCardError(primaryReason, error) {
|
|
88
126
|
return isMediaCardError(error) ? error : new MediaCardError(primaryReason, error);
|
|
127
|
+
};
|
|
128
|
+
export var isUploadError = function isUploadError(error) {
|
|
129
|
+
return error.primaryReason === 'upload';
|
|
89
130
|
};
|
|
@@ -20,20 +20,17 @@ import { CardLoading } from '../../utils/lightCards/cardLoading';
|
|
|
20
20
|
import { shouldDisplayImageThumbnail } from '../../utils/shouldDisplayImageThumbnail';
|
|
21
21
|
import { ProgressBar } from '../../utils/progressBar';
|
|
22
22
|
import CardActions from '../../utils/cardActions';
|
|
23
|
-
import { withAnalyticsEvents } from '@atlaskit/analytics-next';
|
|
24
|
-
import { fireMediaCardEvent, RenderEventAction, getRenderSucceededEventPayload, getRenderFailedFileUriPayload, getRenderFailedExternalUriPayload } from '../../utils/analytics';
|
|
25
|
-
import { withFileAttributes } from '../../utils/fileAttributesContext';
|
|
26
23
|
export var fileCardImageViewSelector = 'media-file-card-view';
|
|
27
24
|
export var fileCardImageViewSelectedSelector = 'media-file-card-view-selected';
|
|
28
|
-
export var
|
|
29
|
-
_inherits(
|
|
25
|
+
export var FileCardImageView = /*#__PURE__*/function (_Component) {
|
|
26
|
+
_inherits(FileCardImageView, _Component);
|
|
30
27
|
|
|
31
|
-
var _super = _createSuper(
|
|
28
|
+
var _super = _createSuper(FileCardImageView);
|
|
32
29
|
|
|
33
|
-
function
|
|
30
|
+
function FileCardImageView() {
|
|
34
31
|
var _this;
|
|
35
32
|
|
|
36
|
-
_classCallCheck(this,
|
|
33
|
+
_classCallCheck(this, FileCardImageView);
|
|
37
34
|
|
|
38
35
|
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
39
36
|
args[_key] = arguments[_key];
|
|
@@ -159,60 +156,18 @@ export var FileCardImageViewBase = /*#__PURE__*/function (_Component) {
|
|
|
159
156
|
})));
|
|
160
157
|
});
|
|
161
158
|
|
|
162
|
-
_defineProperty(_assertThisInitialized(_this), "onImageLoad", function () {
|
|
163
|
-
var _this$props6 = _this.props,
|
|
164
|
-
createAnalyticsEvent = _this$props6.createAnalyticsEvent,
|
|
165
|
-
fileAttributes = _this$props6.fileAttributes,
|
|
166
|
-
timeElapsedTillCommenced = _this$props6.timeElapsedTillCommenced;
|
|
167
|
-
|
|
168
|
-
if (fileAttributes && _this.shouldFireEvent(RenderEventAction.SUCCEEDED)) {
|
|
169
|
-
var timeElapsedTillSucceeded = performance.now();
|
|
170
|
-
var durationSinceCommenced = timeElapsedTillCommenced && timeElapsedTillSucceeded - timeElapsedTillCommenced;
|
|
171
|
-
var performanceAttributes = {
|
|
172
|
-
overall: {
|
|
173
|
-
durationSincePageStart: timeElapsedTillSucceeded,
|
|
174
|
-
durationSinceCommenced: durationSinceCommenced
|
|
175
|
-
}
|
|
176
|
-
};
|
|
177
|
-
fireMediaCardEvent(getRenderSucceededEventPayload(fileAttributes, performanceAttributes), createAnalyticsEvent);
|
|
178
|
-
}
|
|
179
|
-
});
|
|
180
|
-
|
|
181
|
-
_defineProperty(_assertThisInitialized(_this), "onImageError", function () {
|
|
182
|
-
var fileAttributes = _this.props.fileAttributes;
|
|
183
|
-
|
|
184
|
-
if (fileAttributes && _this.shouldFireEvent(RenderEventAction.FAILED)) {
|
|
185
|
-
var _this$props7 = _this.props,
|
|
186
|
-
createAnalyticsEvent = _this$props7.createAnalyticsEvent,
|
|
187
|
-
mediaItemType = _this$props7.mediaItemType,
|
|
188
|
-
timeElapsedTillCommenced = _this$props7.timeElapsedTillCommenced;
|
|
189
|
-
var timeElapsedTillFailed = performance.now();
|
|
190
|
-
var durationSinceCommenced = timeElapsedTillCommenced && timeElapsedTillFailed - timeElapsedTillCommenced;
|
|
191
|
-
var performanceAttributes = {
|
|
192
|
-
overall: {
|
|
193
|
-
durationSincePageStart: timeElapsedTillFailed,
|
|
194
|
-
durationSinceCommenced: durationSinceCommenced
|
|
195
|
-
}
|
|
196
|
-
};
|
|
197
|
-
|
|
198
|
-
if (mediaItemType === 'file') {
|
|
199
|
-
fireMediaCardEvent(getRenderFailedFileUriPayload(fileAttributes, performanceAttributes), createAnalyticsEvent);
|
|
200
|
-
} else if (mediaItemType === 'external-image') {
|
|
201
|
-
fireMediaCardEvent(getRenderFailedExternalUriPayload(fileAttributes, performanceAttributes), createAnalyticsEvent);
|
|
202
|
-
}
|
|
203
|
-
}
|
|
204
|
-
});
|
|
205
|
-
|
|
206
159
|
_defineProperty(_assertThisInitialized(_this), "renderMediaImage", function () {
|
|
207
|
-
var _this$
|
|
208
|
-
status = _this$
|
|
209
|
-
mediaItemType = _this$
|
|
210
|
-
dataURI = _this$
|
|
211
|
-
mediaType = _this$
|
|
212
|
-
mimeType = _this$
|
|
213
|
-
previewOrientation = _this$
|
|
214
|
-
onDisplayImage = _this$
|
|
215
|
-
alt = _this$
|
|
160
|
+
var _this$props6 = _this.props,
|
|
161
|
+
status = _this$props6.status,
|
|
162
|
+
mediaItemType = _this$props6.mediaItemType,
|
|
163
|
+
dataURI = _this$props6.dataURI,
|
|
164
|
+
mediaType = _this$props6.mediaType,
|
|
165
|
+
mimeType = _this$props6.mimeType,
|
|
166
|
+
previewOrientation = _this$props6.previewOrientation,
|
|
167
|
+
onDisplayImage = _this$props6.onDisplayImage,
|
|
168
|
+
alt = _this$props6.alt,
|
|
169
|
+
onImageLoad = _this$props6.onImageLoad,
|
|
170
|
+
onImageError = _this$props6.onImageError;
|
|
216
171
|
|
|
217
172
|
if (!shouldDisplayImageThumbnail(status, mediaItemType, dataURI, mediaType, mimeType)) {
|
|
218
173
|
return null;
|
|
@@ -229,21 +184,17 @@ export var FileCardImageViewBase = /*#__PURE__*/function (_Component) {
|
|
|
229
184
|
crop: _this.isCropped,
|
|
230
185
|
stretch: _this.isStretched,
|
|
231
186
|
previewOrientation: previewOrientation,
|
|
232
|
-
onImageLoad:
|
|
233
|
-
onImageError:
|
|
187
|
+
onImageLoad: onImageLoad,
|
|
188
|
+
onImageError: onImageError
|
|
234
189
|
});
|
|
235
190
|
});
|
|
236
191
|
|
|
237
|
-
_defineProperty(_assertThisInitialized(_this), "shouldFireEvent", function (action) {
|
|
238
|
-
return !_this.lastAnalyticsAction || _this.lastAnalyticsAction !== action;
|
|
239
|
-
});
|
|
240
|
-
|
|
241
192
|
_defineProperty(_assertThisInitialized(_this), "renderProgressBar", function () {
|
|
242
|
-
var _this$
|
|
243
|
-
mediaName = _this$
|
|
244
|
-
progress = _this$
|
|
245
|
-
actions = _this$
|
|
246
|
-
status = _this$
|
|
193
|
+
var _this$props7 = _this.props,
|
|
194
|
+
mediaName = _this$props7.mediaName,
|
|
195
|
+
progress = _this$props7.progress,
|
|
196
|
+
actions = _this$props7.actions,
|
|
197
|
+
status = _this$props7.status;
|
|
247
198
|
|
|
248
199
|
if (status !== 'uploading') {
|
|
249
200
|
return null;
|
|
@@ -262,10 +213,10 @@ export var FileCardImageViewBase = /*#__PURE__*/function (_Component) {
|
|
|
262
213
|
});
|
|
263
214
|
|
|
264
215
|
_defineProperty(_assertThisInitialized(_this), "renderSuccessCardContents", function () {
|
|
265
|
-
var _this$
|
|
266
|
-
disableOverlay = _this$
|
|
267
|
-
selectable = _this$
|
|
268
|
-
status = _this$
|
|
216
|
+
var _this$props8 = _this.props,
|
|
217
|
+
disableOverlay = _this$props8.disableOverlay,
|
|
218
|
+
selectable = _this$props8.selectable,
|
|
219
|
+
status = _this$props8.status;
|
|
269
220
|
var overlay = null;
|
|
270
221
|
|
|
271
222
|
if (!disableOverlay) {
|
|
@@ -286,15 +237,15 @@ export var FileCardImageViewBase = /*#__PURE__*/function (_Component) {
|
|
|
286
237
|
});
|
|
287
238
|
|
|
288
239
|
_defineProperty(_assertThisInitialized(_this), "renderSuccessCardOverlay", function () {
|
|
289
|
-
var _this$
|
|
290
|
-
status = _this$
|
|
291
|
-
mediaName = _this$
|
|
292
|
-
mediaType = _this$
|
|
293
|
-
fileSize = _this$
|
|
294
|
-
dataURI = _this$
|
|
295
|
-
selectable = _this$
|
|
296
|
-
selected = _this$
|
|
297
|
-
actions = _this$
|
|
240
|
+
var _this$props9 = _this.props,
|
|
241
|
+
status = _this$props9.status,
|
|
242
|
+
mediaName = _this$props9.mediaName,
|
|
243
|
+
mediaType = _this$props9.mediaType,
|
|
244
|
+
fileSize = _this$props9.fileSize,
|
|
245
|
+
dataURI = _this$props9.dataURI,
|
|
246
|
+
selectable = _this$props9.selectable,
|
|
247
|
+
selected = _this$props9.selected,
|
|
248
|
+
actions = _this$props9.actions;
|
|
298
249
|
var isPersistent = mediaType === 'doc' || !dataURI;
|
|
299
250
|
return /*#__PURE__*/React.createElement(CardOverlay, {
|
|
300
251
|
cardStatus: status,
|
|
@@ -311,17 +262,17 @@ export var FileCardImageViewBase = /*#__PURE__*/function (_Component) {
|
|
|
311
262
|
return _this;
|
|
312
263
|
}
|
|
313
264
|
|
|
314
|
-
_createClass(
|
|
265
|
+
_createClass(FileCardImageView, [{
|
|
315
266
|
key: "render",
|
|
316
267
|
value: function render() {
|
|
317
|
-
var _this$
|
|
318
|
-
disableOverlay = _this$
|
|
319
|
-
selectable = _this$
|
|
320
|
-
selected = _this$
|
|
321
|
-
mediaType = _this$
|
|
322
|
-
progress = _this$
|
|
323
|
-
status = _this$
|
|
324
|
-
mediaName = _this$
|
|
268
|
+
var _this$props10 = this.props,
|
|
269
|
+
disableOverlay = _this$props10.disableOverlay,
|
|
270
|
+
selectable = _this$props10.selectable,
|
|
271
|
+
selected = _this$props10.selected,
|
|
272
|
+
mediaType = _this$props10.mediaType,
|
|
273
|
+
progress = _this$props10.progress,
|
|
274
|
+
status = _this$props10.status,
|
|
275
|
+
mediaName = _this$props10.mediaName;
|
|
325
276
|
return /*#__PURE__*/React.createElement(Wrapper, {
|
|
326
277
|
"data-testid": "media-file-card-view",
|
|
327
278
|
"data-test-media-name": mediaName,
|
|
@@ -338,9 +289,9 @@ export var FileCardImageViewBase = /*#__PURE__*/function (_Component) {
|
|
|
338
289
|
}, {
|
|
339
290
|
key: "isFileCardImageReadyForDisplay",
|
|
340
291
|
get: function get() {
|
|
341
|
-
var _this$
|
|
342
|
-
dataURI = _this$
|
|
343
|
-
status = _this$
|
|
292
|
+
var _this$props11 = this.props,
|
|
293
|
+
dataURI = _this$props11.dataURI,
|
|
294
|
+
status = _this$props11.status;
|
|
344
295
|
return !!dataURI || !['loading', 'processing', 'loading-preview'].includes(status);
|
|
345
296
|
}
|
|
346
297
|
}, {
|
|
@@ -357,12 +308,10 @@ export var FileCardImageViewBase = /*#__PURE__*/function (_Component) {
|
|
|
357
308
|
}
|
|
358
309
|
}]);
|
|
359
310
|
|
|
360
|
-
return
|
|
311
|
+
return FileCardImageView;
|
|
361
312
|
}(Component);
|
|
362
313
|
|
|
363
|
-
_defineProperty(
|
|
314
|
+
_defineProperty(FileCardImageView, "defaultProps", {
|
|
364
315
|
resizeMode: 'crop',
|
|
365
316
|
disableOverlay: false
|
|
366
|
-
});
|
|
367
|
-
|
|
368
|
-
export var FileCardImageView = withAnalyticsEvents()(withFileAttributes(FileCardImageViewBase));
|
|
317
|
+
});
|
package/dist/esm/files/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export { FileCardImageView
|
|
1
|
+
export { FileCardImageView } from './cardImageView';
|
|
@@ -1,25 +1,13 @@
|
|
|
1
1
|
import { fireMediaCardEvent, getRenderSucceededEventPayload, getRenderErrorEventPayload, getRenderFailedFileStatusPayload, getCopiedFilePayload, getRenderCommencedEventPayload, getRenderPreviewableCardPayload } from '../../utils/analytics';
|
|
2
|
-
export var relevantFeatureFlagNames = ['newCardExperience', '
|
|
3
|
-
export var fireOperationalEvent = function fireOperationalEvent(createAnalyticsEvent, status, fileAttributes, performanceAttributes) {
|
|
4
|
-
var _ref = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {},
|
|
5
|
-
cardPreview = _ref.cardPreview,
|
|
6
|
-
error = _ref.error;
|
|
7
|
-
|
|
2
|
+
export var relevantFeatureFlagNames = ['newCardExperience', 'captions'];
|
|
3
|
+
export var fireOperationalEvent = function fireOperationalEvent(createAnalyticsEvent, status, fileAttributes, performanceAttributes, error) {
|
|
8
4
|
var fireEvent = function fireEvent(payload) {
|
|
9
5
|
return fireMediaCardEvent(payload, createAnalyticsEvent);
|
|
10
6
|
};
|
|
11
7
|
|
|
12
8
|
switch (status) {
|
|
13
9
|
case 'complete':
|
|
14
|
-
|
|
15
|
-
* A Card that is considered Complete and has no preview,
|
|
16
|
-
* reflects an expected behaviour, and thus a legitimate
|
|
17
|
-
* success case to be logged.
|
|
18
|
-
*/
|
|
19
|
-
if (!(cardPreview !== null && cardPreview !== void 0 && cardPreview.dataURI)) {
|
|
20
|
-
fireEvent(getRenderSucceededEventPayload(fileAttributes, performanceAttributes));
|
|
21
|
-
}
|
|
22
|
-
|
|
10
|
+
fireEvent(getRenderSucceededEventPayload(fileAttributes, performanceAttributes));
|
|
23
11
|
break;
|
|
24
12
|
|
|
25
13
|
case 'failed-processing':
|
|
@@ -7,6 +7,7 @@ import _extends from "@babel/runtime/helpers/extends";
|
|
|
7
7
|
* imported file only contains and depends on only what is required for it to function.
|
|
8
8
|
*/
|
|
9
9
|
import React from 'react';
|
|
10
|
+
import { imageResizeModeToFileImageMode } from '@atlaskit/media-client';
|
|
10
11
|
import { MediaImage } from '@atlaskit/media-ui';
|
|
11
12
|
import SpinnerIcon from '@atlaskit/spinner';
|
|
12
13
|
import { getRequestedDimensions } from '../../utils/getDataURIDimension';
|
|
@@ -32,7 +33,7 @@ export var CardSSRView = function CardSSRView(_ref) {
|
|
|
32
33
|
width = _getRequestedDimensio.width,
|
|
33
34
|
height = _getRequestedDimensio.height;
|
|
34
35
|
|
|
35
|
-
var mode = resizeMode
|
|
36
|
+
var mode = imageResizeModeToFileImageMode(resizeMode);
|
|
36
37
|
dataURI = mediaClient.getImageUrlSync(identifier.id, {
|
|
37
38
|
collection: identifier.collectionName,
|
|
38
39
|
mode: mode,
|
|
@@ -52,7 +53,7 @@ export var CardSSRView = function CardSSRView(_ref) {
|
|
|
52
53
|
breakpoint: calculateBreakpoint(dimensions),
|
|
53
54
|
shouldUsePointerCursor: Boolean(dataURI),
|
|
54
55
|
displayBackground: shouldDisplayBackground,
|
|
55
|
-
disableOverlay: disableOverlay,
|
|
56
|
+
disableOverlay: !!disableOverlay,
|
|
56
57
|
selected: false,
|
|
57
58
|
"data-testid": "media-card-view"
|
|
58
59
|
}, /*#__PURE__*/React.createElement(CardImageContainer, {
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
2
|
+
|
|
3
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
|
|
4
|
+
|
|
5
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
6
|
+
|
|
7
|
+
import { isErrorFileState } from '@atlaskit/media-client';
|
|
8
|
+
import { MediaCardError } from '../../errors';
|
|
9
|
+
import { getCardStatus, isFinalCardStatus } from './getCardStatus';
|
|
10
|
+
import { extractFilePreviewStatus } from './getCardPreview';
|
|
11
|
+
export var createStateUpdater = function createStateUpdater(newState) {
|
|
12
|
+
return function (prevState) {
|
|
13
|
+
// Only override if previous status is non-final
|
|
14
|
+
// or new status is 'complete'
|
|
15
|
+
if (isFinalCardStatus(prevState.status) && newState.status !== 'complete') {
|
|
16
|
+
return prevState;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
return _objectSpread(_objectSpread({}, prevState), newState);
|
|
20
|
+
};
|
|
21
|
+
};
|
|
22
|
+
export var getCardStateFromFileState = function getCardStateFromFileState(fileState, isBannedLocalPreview, featureFlags) {
|
|
23
|
+
var status = getCardStatus(fileState.status, extractFilePreviewStatus(fileState, isBannedLocalPreview, featureFlags));
|
|
24
|
+
var error = status === 'error' && isErrorFileState(fileState) ? new MediaCardError('error-file-state', new Error(fileState.message)) : undefined;
|
|
25
|
+
var progress = status === 'uploading' && fileState.status === 'uploading' ? fileState.progress : 1;
|
|
26
|
+
return {
|
|
27
|
+
fileState: fileState,
|
|
28
|
+
status: status,
|
|
29
|
+
progress: progress,
|
|
30
|
+
error: error
|
|
31
|
+
};
|
|
32
|
+
};
|
|
@@ -22,6 +22,12 @@ export var CardPreviewCacheImpl = function CardPreviewCacheImpl(previewCache) {
|
|
|
22
22
|
_this.previewCache.set(cacheKey, cardPreview);
|
|
23
23
|
});
|
|
24
24
|
|
|
25
|
+
_defineProperty(this, "remove", function (id, dimensions) {
|
|
26
|
+
var cacheKey = getCacheKey(id, dimensions);
|
|
27
|
+
|
|
28
|
+
_this.previewCache.remove(cacheKey);
|
|
29
|
+
});
|
|
30
|
+
|
|
25
31
|
this.previewCache = previewCache;
|
|
26
32
|
};
|
|
27
33
|
export default new CardPreviewCacheImpl(createObjectURLCache());
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { isMimeTypeSupportedByBrowser } from '@atlaskit/media-common';
|
|
2
|
+
import { isPreviewableFileState, isPreviewableType, isImageRepresentationReady } from '@atlaskit/media-client';
|
|
3
|
+
import { isSupportedLocalPreview } from './helpers'; // TODO: align these checks with helpers from Media Client
|
|
4
|
+
// https://product-fabric.atlassian.net/browse/BMPT-1300
|
|
5
|
+
|
|
6
|
+
export var extractFilePreviewStatus = function extractFilePreviewStatus(fileState, isBannedLocalPreview, featureFlags) {
|
|
7
|
+
var hasFilesize = 'size' in fileState && !!fileState.size;
|
|
8
|
+
|
|
9
|
+
var _ref = 'mediaType' in fileState && fileState || {},
|
|
10
|
+
mediaType = _ref.mediaType;
|
|
11
|
+
|
|
12
|
+
var _ref2 = 'mimeType' in fileState && fileState || {},
|
|
13
|
+
mimeType = _ref2.mimeType;
|
|
14
|
+
|
|
15
|
+
var isPreviewable = !!mediaType && isPreviewableType(mediaType, featureFlags); // Local preview is available only if it's supported by browser and supported by Media Card (isSupportedLocalPreview)
|
|
16
|
+
// For example, SVGs are mime type NOT supported by browser but media type supported by Media Card (image)
|
|
17
|
+
// Then, local Preview NOT available
|
|
18
|
+
|
|
19
|
+
var hasLocalPreview = !isBannedLocalPreview && isPreviewableFileState(fileState) && isSupportedLocalPreview(mediaType) && !!mimeType && isMimeTypeSupportedByBrowser(mimeType);
|
|
20
|
+
var hasRemotePreview = isImageRepresentationReady(fileState);
|
|
21
|
+
var hasPreview = hasLocalPreview || hasRemotePreview;
|
|
22
|
+
var isSupportedByBrowser = !!mimeType && isMimeTypeSupportedByBrowser(mimeType);
|
|
23
|
+
return {
|
|
24
|
+
hasFilesize: hasFilesize,
|
|
25
|
+
isPreviewable: isPreviewable,
|
|
26
|
+
hasPreview: hasPreview,
|
|
27
|
+
isSupportedByBrowser: isSupportedByBrowser
|
|
28
|
+
};
|
|
29
|
+
};
|
|
30
|
+
export var isPreviewableStatus = function isPreviewableStatus(cardStatus, _ref3) {
|
|
31
|
+
var isPreviewable = _ref3.isPreviewable,
|
|
32
|
+
hasPreview = _ref3.hasPreview,
|
|
33
|
+
isSupportedByBrowser = _ref3.isSupportedByBrowser;
|
|
34
|
+
return hasPreview && isPreviewable && (cardStatus === 'complete' || cardStatus === 'loading-preview' || cardStatus === 'uploading' || cardStatus === 'processing' && isSupportedByBrowser);
|
|
35
|
+
};
|
|
@@ -157,25 +157,17 @@ export var getCardPreviewFromFilePreview = /*#__PURE__*/function () {
|
|
|
157
157
|
};
|
|
158
158
|
}();
|
|
159
159
|
export var getCardPreviewFromBackend = /*#__PURE__*/function () {
|
|
160
|
-
var
|
|
161
|
-
var
|
|
160
|
+
var _ref4 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee4(mediaClient, id, params) {
|
|
161
|
+
var blob;
|
|
162
162
|
return _regeneratorRuntime.wrap(function _callee4$(_context4) {
|
|
163
163
|
while (1) {
|
|
164
164
|
switch (_context4.prev = _context4.next) {
|
|
165
165
|
case 0:
|
|
166
|
-
|
|
167
|
-
_context4.
|
|
168
|
-
|
|
169
|
-
_context4.next = 5;
|
|
170
|
-
return mediaClient.getImage(id, {
|
|
171
|
-
collection: collectionName,
|
|
172
|
-
mode: mode,
|
|
173
|
-
width: width,
|
|
174
|
-
height: height,
|
|
175
|
-
allowAnimated: true
|
|
176
|
-
});
|
|
166
|
+
_context4.prev = 0;
|
|
167
|
+
_context4.next = 3;
|
|
168
|
+
return mediaClient.getImage(id, params);
|
|
177
169
|
|
|
178
|
-
case
|
|
170
|
+
case 3:
|
|
179
171
|
blob = _context4.sent;
|
|
180
172
|
return _context4.abrupt("return", {
|
|
181
173
|
dataURI: URL.createObjectURL(blob),
|
|
@@ -183,20 +175,20 @@ export var getCardPreviewFromBackend = /*#__PURE__*/function () {
|
|
|
183
175
|
source: 'remote'
|
|
184
176
|
});
|
|
185
177
|
|
|
186
|
-
case
|
|
187
|
-
_context4.prev =
|
|
188
|
-
_context4.t0 = _context4["catch"](
|
|
178
|
+
case 7:
|
|
179
|
+
_context4.prev = 7;
|
|
180
|
+
_context4.t0 = _context4["catch"](0);
|
|
189
181
|
throw new RemotePreviewError('remote-preview-fetch', _context4.t0);
|
|
190
182
|
|
|
191
|
-
case
|
|
183
|
+
case 10:
|
|
192
184
|
case "end":
|
|
193
185
|
return _context4.stop();
|
|
194
186
|
}
|
|
195
187
|
}
|
|
196
|
-
}, _callee4, null, [[
|
|
188
|
+
}, _callee4, null, [[0, 7]]);
|
|
197
189
|
}));
|
|
198
190
|
|
|
199
|
-
return function getCardPreviewFromBackend(_x4, _x5, _x6
|
|
200
|
-
return
|
|
191
|
+
return function getCardPreviewFromBackend(_x4, _x5, _x6) {
|
|
192
|
+
return _ref4.apply(this, arguments);
|
|
201
193
|
};
|
|
202
194
|
}();
|