@atlaskit/media-card 70.11.0 → 73.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 +104 -0
- package/dist/cjs/errors.js +78 -5
- package/dist/cjs/files/cardImageView/cardOverlay/styled.js +1 -1
- package/dist/cjs/files/cardImageView/index.js +53 -104
- package/dist/cjs/files/cardImageView/styled.js +1 -1
- package/dist/cjs/files/index.js +0 -6
- package/dist/cjs/index.js +12 -6
- package/dist/cjs/root/card/cardAnalytics.js +11 -17
- package/dist/cjs/root/card/cardLoader.js +66 -124
- package/dist/cjs/root/card/cardState.js +50 -0
- package/dist/cjs/root/card/getCardPreview/cache.js +6 -1
- package/dist/cjs/root/card/getCardPreview/filePreviewStatus.js +53 -0
- package/dist/cjs/root/card/getCardPreview/helpers.js +14 -22
- package/dist/cjs/root/card/getCardPreview/index.js +176 -102
- package/dist/cjs/root/card/getCardStatus.js +7 -1
- package/dist/cjs/root/card/index.js +361 -281
- package/dist/cjs/root/cardView.js +109 -86
- package/dist/cjs/root/index.js +9 -1
- package/dist/cjs/root/inline/loader.js +22 -21
- package/dist/cjs/root/inline/{inlineMediaCard.js → mediaInlineCard.js} +84 -26
- package/dist/cjs/root/inlinePlayer.js +4 -3
- package/dist/cjs/root/styled.js +7 -3
- package/dist/cjs/root/ui/actionsBar/styled.js +1 -1
- package/dist/cjs/root/ui/blanket/styled.js +1 -1
- package/dist/cjs/root/ui/common.js +11 -5
- package/dist/cjs/root/ui/iconMessage/index.js +16 -7
- package/dist/cjs/root/ui/iconWrapper/styled.js +1 -1
- package/dist/cjs/root/ui/imageRenderer/imageRenderer.js +34 -124
- package/dist/cjs/root/ui/loadingRateLimited/loadingRateLimited.js +6 -4
- package/dist/cjs/root/ui/loadingRateLimited/styled.js +1 -1
- package/dist/cjs/root/ui/playButton/styled.js +1 -1
- package/dist/cjs/root/ui/progressBar/progressBar.js +2 -2
- package/dist/cjs/root/ui/progressBar/styled.js +2 -4
- package/dist/cjs/root/ui/styled.js +80 -17
- package/dist/cjs/root/ui/tickBox/styled.js +1 -1
- package/dist/cjs/root/ui/titleBox/failedTitleBox.js +9 -3
- package/dist/cjs/root/ui/titleBox/styled.js +2 -4
- package/dist/cjs/root/ui/titleBox/titleBox.js +2 -2
- package/dist/cjs/styles/index.js +25 -23
- package/dist/cjs/styles/mixins.js +1 -1
- package/dist/cjs/utils/analytics.js +21 -43
- package/dist/cjs/utils/breakpoint.js +1 -1
- package/dist/cjs/utils/cardActions/cardActionsDropdownMenu.js +16 -9
- package/dist/cjs/utils/cardActions/index.js +10 -10
- package/dist/cjs/utils/cardActions/styled.js +1 -1
- package/dist/cjs/utils/cardDimensions.js +1 -1
- package/dist/cjs/utils/dimensionComparer.js +1 -1
- package/dist/cjs/utils/getErrorMessage.js +2 -2
- package/dist/cjs/utils/index.js +46 -46
- package/dist/cjs/utils/lightCards/styled.js +1 -1
- package/dist/cjs/utils/metadata.js +11 -3
- package/dist/cjs/utils/objectURLCache.js +7 -1
- package/dist/cjs/utils/shouldDisplayImageThumbnail.js +1 -1
- package/dist/cjs/utils/viewportDetector.js +1 -1
- package/dist/cjs/version.json +1 -1
- package/dist/es2019/errors.js +42 -2
- package/dist/es2019/files/cardImageView/index.js +8 -61
- package/dist/es2019/files/index.js +1 -1
- package/dist/es2019/index.js +1 -1
- package/dist/es2019/root/card/cardAnalytics.js +7 -15
- package/dist/es2019/root/card/cardLoader.js +47 -53
- 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 +38 -0
- package/dist/es2019/root/card/getCardPreview/helpers.js +2 -12
- package/dist/es2019/root/card/getCardPreview/index.js +112 -79
- package/dist/es2019/root/card/getCardStatus.js +1 -0
- package/dist/es2019/root/card/index.js +285 -190
- package/dist/es2019/root/cardView.js +93 -68
- package/dist/es2019/root/index.js +2 -1
- package/dist/es2019/root/inline/loader.js +16 -15
- package/dist/es2019/root/inline/mediaInlineCard.js +143 -0
- package/dist/es2019/root/inlinePlayer.js +3 -2
- package/dist/es2019/root/styled.js +2 -1
- package/dist/es2019/root/ui/common.js +7 -1
- package/dist/es2019/root/ui/iconMessage/index.js +8 -5
- package/dist/es2019/root/ui/imageRenderer/imageRenderer.js +25 -88
- package/dist/es2019/root/ui/loadingRateLimited/loadingRateLimited.js +4 -3
- package/dist/es2019/root/ui/progressBar/progressBar.js +1 -1
- package/dist/es2019/root/ui/progressBar/styled.js +1 -2
- package/dist/es2019/root/ui/styled.js +64 -3
- package/dist/es2019/root/ui/titleBox/failedTitleBox.js +6 -3
- package/dist/es2019/root/ui/titleBox/styled.js +1 -2
- package/dist/es2019/root/ui/titleBox/titleBox.js +1 -1
- package/dist/es2019/utils/analytics.js +15 -34
- package/dist/es2019/utils/cardActions/cardActionsDropdownMenu.js +8 -4
- package/dist/es2019/utils/dimensionComparer.js +1 -1
- package/dist/es2019/utils/getErrorMessage.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 +60 -1
- package/dist/esm/files/cardImageView/index.js +51 -102
- package/dist/esm/files/index.js +1 -1
- package/dist/esm/index.js +1 -1
- package/dist/esm/root/card/cardAnalytics.js +7 -16
- package/dist/esm/root/card/cardLoader.js +66 -126
- 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 +38 -0
- package/dist/esm/root/card/getCardPreview/helpers.js +13 -21
- package/dist/esm/root/card/getCardPreview/index.js +142 -95
- package/dist/esm/root/card/getCardStatus.js +3 -0
- package/dist/esm/root/card/index.js +370 -284
- package/dist/esm/root/cardView.js +109 -84
- package/dist/esm/root/index.js +2 -1
- package/dist/esm/root/inline/loader.js +23 -22
- package/dist/esm/root/inline/mediaInlineCard.js +156 -0
- package/dist/esm/root/inlinePlayer.js +3 -2
- package/dist/esm/root/styled.js +3 -2
- package/dist/esm/root/ui/common.js +7 -1
- package/dist/esm/root/ui/iconMessage/index.js +10 -5
- package/dist/esm/root/ui/imageRenderer/imageRenderer.js +27 -118
- package/dist/esm/root/ui/loadingRateLimited/loadingRateLimited.js +4 -3
- package/dist/esm/root/ui/progressBar/progressBar.js +1 -1
- package/dist/esm/root/ui/progressBar/styled.js +1 -2
- package/dist/esm/root/ui/styled.js +61 -13
- package/dist/esm/root/ui/titleBox/failedTitleBox.js +7 -3
- package/dist/esm/root/ui/titleBox/styled.js +1 -2
- package/dist/esm/root/ui/titleBox/titleBox.js +1 -1
- package/dist/esm/utils/analytics.js +16 -35
- package/dist/esm/utils/cardActions/cardActionsDropdownMenu.js +16 -9
- package/dist/esm/utils/dimensionComparer.js +1 -1
- package/dist/esm/utils/getErrorMessage.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 +15 -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 +7 -5
- package/dist/types/root/card/cardAnalytics.d.ts +2 -6
- package/dist/types/root/card/cardLoader.d.ts +5 -19
- 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 +24 -14
- package/dist/types/root/card/getCardStatus.d.ts +1 -0
- package/dist/types/root/card/index.d.ts +19 -18
- package/dist/types/root/cardView.d.ts +13 -8
- package/dist/types/root/index.d.ts +1 -0
- package/dist/types/root/inline/loader.d.ts +8 -8
- package/dist/types/root/inline/{inlineMediaCard.d.ts → mediaInlineCard.d.ts} +4 -6
- package/dist/types/root/inlinePlayer.d.ts +1 -1
- package/dist/types/root/styled.d.ts +1 -0
- package/dist/types/root/ui/common.d.ts +4 -1
- package/dist/types/root/ui/iconMessage/index.d.ts +4 -3
- package/dist/types/root/ui/iconWrapper/styled.d.ts +1 -1
- package/dist/types/root/ui/imageRenderer/imageRenderer.d.ts +5 -15
- package/dist/types/root/ui/loadingRateLimited/loadingRateLimited.d.ts +2 -1
- package/dist/types/root/ui/loadingRateLimited/styled.d.ts +1 -1
- package/dist/types/root/ui/playButton/playButton.d.ts +1 -0
- package/dist/types/root/ui/progressBar/progressBar.d.ts +2 -1
- package/dist/types/root/ui/progressBar/styled.d.ts +1 -1
- package/dist/types/root/ui/styled.d.ts +10 -3
- package/dist/types/root/ui/tickBox/tickBox.d.ts +1 -0
- package/dist/types/root/ui/titleBox/failedTitleBox.d.ts +3 -1
- package/dist/types/root/ui/titleBox/styled.d.ts +1 -1
- package/dist/types/root/ui/titleBox/titleBox.d.ts +2 -10
- package/dist/types/styles/mixins.d.ts +1 -1
- package/dist/types/types.d.ts +7 -1
- package/dist/types/utils/analytics.d.ts +14 -15
- package/dist/types/utils/cardDimensions.d.ts +4 -4
- package/dist/types/utils/dimensionComparer.d.ts +1 -1
- package/dist/types/utils/getErrorMessage.d.ts +1 -0
- package/dist/types/utils/metadata.d.ts +2 -2
- package/dist/types/utils/objectURLCache.d.ts +2 -1
- package/example-helpers/developmentUseMessage.tsx +14 -0
- package/example-helpers/index.tsx +55 -4
- package/example-helpers/selectableCard.tsx +2 -1
- package/package.json +20 -16
- package/dist/cjs/root/card/cardSSRView.js +0 -99
- package/dist/cjs/root/card/getCardPreview/types.js +0 -5
- package/dist/cjs/root/ui/Breakpoint.js +0 -13
- package/dist/cjs/root/ui/styledSSR.js +0 -108
- package/dist/cjs/utils/fileAttributesContext.js +0 -40
- package/dist/es2019/root/card/cardSSRView.js +0 -79
- package/dist/es2019/root/card/getCardPreview/types.js +0 -1
- package/dist/es2019/root/inline/inlineMediaCard.js +0 -92
- package/dist/es2019/root/ui/Breakpoint.js +0 -6
- package/dist/es2019/root/ui/styledSSR.js +0 -93
- package/dist/es2019/utils/fileAttributesContext.js +0 -19
- package/dist/esm/root/card/cardSSRView.js +0 -78
- package/dist/esm/root/card/getCardPreview/types.js +0 -1
- package/dist/esm/root/inline/inlineMediaCard.js +0 -100
- package/dist/esm/root/ui/Breakpoint.js +0 -6
- package/dist/esm/root/ui/styledSSR.js +0 -76
- package/dist/esm/utils/fileAttributesContext.js +0 -18
- package/dist/types/root/card/cardSSRView.d.ts +0 -12
- package/dist/types/root/card/getCardPreview/types.d.ts +0 -5
- package/dist/types/root/ui/Breakpoint.d.ts +0 -4
- package/dist/types/root/ui/styledSSR.d.ts +0 -16
- package/dist/types/utils/fileAttributesContext.d.ts +0 -10
|
@@ -7,7 +7,7 @@ var _typeof = require("@babel/runtime/helpers/typeof");
|
|
|
7
7
|
Object.defineProperty(exports, "__esModule", {
|
|
8
8
|
value: true
|
|
9
9
|
});
|
|
10
|
-
exports.
|
|
10
|
+
exports.CardBase = exports.Card = void 0;
|
|
11
11
|
|
|
12
12
|
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
13
13
|
|
|
@@ -45,7 +45,7 @@ var _mediaClient = require("@atlaskit/media-client");
|
|
|
45
45
|
|
|
46
46
|
var _mediaViewer = require("@atlaskit/media-viewer");
|
|
47
47
|
|
|
48
|
-
var
|
|
48
|
+
var _reactIntlNext = require("react-intl-next");
|
|
49
49
|
|
|
50
50
|
var _cardView = require("../cardView");
|
|
51
51
|
|
|
@@ -57,22 +57,18 @@ var _getCardPreview = require("./getCardPreview");
|
|
|
57
57
|
|
|
58
58
|
var _metadata = require("../../utils/metadata");
|
|
59
59
|
|
|
60
|
-
var _dimensionComparer = require("../../utils/dimensionComparer");
|
|
61
|
-
|
|
62
|
-
var _getCardStatus = require("./getCardStatus");
|
|
63
|
-
|
|
64
60
|
var _inlinePlayer = require("../inlinePlayer");
|
|
65
61
|
|
|
66
62
|
var _analytics = require("../../utils/analytics");
|
|
67
63
|
|
|
68
|
-
var _fileAttributesContext = require("../../utils/fileAttributesContext");
|
|
69
|
-
|
|
70
64
|
var _errors = require("../../errors");
|
|
71
65
|
|
|
72
66
|
var _cardAnalytics = require("./cardAnalytics");
|
|
73
67
|
|
|
74
68
|
var _document = _interopRequireDefault(require("../../utils/document"));
|
|
75
69
|
|
|
70
|
+
var _cardState = require("./cardState");
|
|
71
|
+
|
|
76
72
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
77
73
|
|
|
78
74
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
@@ -99,78 +95,203 @@ var CardBase = /*#__PURE__*/function (_Component) {
|
|
|
99
95
|
_this = _super.call(this, props);
|
|
100
96
|
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "hasBeenMounted", false);
|
|
101
97
|
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "timeElapsedTillCommenced", performance.now());
|
|
102
|
-
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
return !_this.lastCardStatusUpdateTimestamp || _this.lastCardStatusUpdateTimestamp <= cardStatusUpdateTimestamp;
|
|
111
|
-
});
|
|
112
|
-
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "onLocalPreviewError", function (error) {// TODO: track local preview success rate
|
|
113
|
-
// https://product-fabric.atlassian.net/browse/MEX-774
|
|
98
|
+
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "getImageURLParams", function (_ref) {
|
|
99
|
+
var collection = _ref.collectionName;
|
|
100
|
+
return _objectSpread(_objectSpread({
|
|
101
|
+
collection: collection,
|
|
102
|
+
mode: (0, _mediaClient.imageResizeModeToFileImageMode)(_this.props.resizeMode)
|
|
103
|
+
}, _this.requestedDimensions), {}, {
|
|
104
|
+
allowAnimated: true
|
|
105
|
+
});
|
|
114
106
|
});
|
|
115
|
-
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "
|
|
116
|
-
var
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
});
|
|
139
|
-
};
|
|
107
|
+
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "getMediaBlobUrlAttrs", function (identifier, fileState) {
|
|
108
|
+
var id = identifier.id,
|
|
109
|
+
collection = identifier.collectionName;
|
|
110
|
+
var _this$props = _this.props,
|
|
111
|
+
originalDimensions = _this$props.originalDimensions,
|
|
112
|
+
contextId = _this$props.contextId,
|
|
113
|
+
alt = _this$props.alt;
|
|
114
|
+
|
|
115
|
+
var _getFileDetails = (0, _metadata.getFileDetails)(identifier, fileState),
|
|
116
|
+
mimeType = _getFileDetails.mimeType,
|
|
117
|
+
name = _getFileDetails.name,
|
|
118
|
+
size = _getFileDetails.size;
|
|
119
|
+
|
|
120
|
+
return contextId ? _objectSpread(_objectSpread({
|
|
121
|
+
id: id,
|
|
122
|
+
collection: collection,
|
|
123
|
+
contextId: contextId,
|
|
124
|
+
mimeType: mimeType,
|
|
125
|
+
name: name,
|
|
126
|
+
size: size
|
|
127
|
+
}, originalDimensions || _this.requestedDimensions), {}, {
|
|
128
|
+
alt: alt
|
|
129
|
+
}) : undefined;
|
|
140
130
|
});
|
|
141
|
-
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "getCardPreviewParams", function (
|
|
131
|
+
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "getCardPreviewParams", function (identifier, fileState) {
|
|
132
|
+
var isBannedLocalPreview = _this.state.isBannedLocalPreview;
|
|
133
|
+
var id = identifier.id;
|
|
142
134
|
var _this$props2 = _this.props,
|
|
143
135
|
_this$props2$dimensio = _this$props2.dimensions,
|
|
144
136
|
dimensions = _this$props2$dimensio === void 0 ? {} : _this$props2$dimensio,
|
|
145
|
-
originalDimensions = _this$props2.originalDimensions,
|
|
146
|
-
resizeMode = _this$props2.resizeMode,
|
|
147
137
|
mediaClient = _this$props2.mediaClient;
|
|
148
|
-
var cardRef = _this.state.cardRef;
|
|
149
|
-
var requestedDimensions = (0, _getDataURIDimension.getRequestedDimensions)({
|
|
150
|
-
dimensions: dimensions,
|
|
151
|
-
element: cardRef
|
|
152
|
-
});
|
|
153
138
|
return {
|
|
154
139
|
mediaClient: mediaClient,
|
|
155
140
|
id: id,
|
|
156
|
-
collectionName: collectionName,
|
|
157
141
|
dimensions: dimensions,
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
onLocalPreviewError: _this.onLocalPreviewError,
|
|
161
|
-
filePreview: (0, _getCardPreview.getFilePreviewFromFileState)(fileState),
|
|
142
|
+
onLocalPreviewError: _this.fireLocalPreviewErrorEvent,
|
|
143
|
+
filePreview: isBannedLocalPreview ? undefined : (0, _getCardPreview.getFilePreviewFromFileState)(fileState),
|
|
162
144
|
isRemotePreviewReady: (0, _mediaClient.isImageRepresentationReady)(fileState),
|
|
163
|
-
|
|
145
|
+
imageUrlParams: _this.getImageURLParams(identifier),
|
|
146
|
+
mediaBlobUrlAttrs: _this.getMediaBlobUrlAttrs(identifier, fileState)
|
|
164
147
|
};
|
|
165
148
|
});
|
|
149
|
+
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "setCacheSSRPreview", function (identifier) {
|
|
150
|
+
var _this$props3 = _this.props,
|
|
151
|
+
mediaClient = _this$props3.mediaClient,
|
|
152
|
+
_this$props3$dimensio = _this$props3.dimensions,
|
|
153
|
+
dimensions = _this$props3$dimensio === void 0 ? {} : _this$props3$dimensio;
|
|
154
|
+
(0, _getCardPreview.fetchAndCacheRemotePreview)(mediaClient, identifier.id, dimensions, _this.getImageURLParams(identifier), _this.getMediaBlobUrlAttrs(identifier)).catch(function () {// No need to log this error.
|
|
155
|
+
// If preview fails, it will be refetched later
|
|
156
|
+
//TODO: test this catch
|
|
157
|
+
// https://product-fabric.atlassian.net/browse/MEX-1071
|
|
158
|
+
});
|
|
159
|
+
});
|
|
160
|
+
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "resolveSSRPreview", function (identifier, ssr) {
|
|
161
|
+
var mediaClient = _this.props.mediaClient;
|
|
162
|
+
|
|
163
|
+
try {
|
|
164
|
+
return (0, _getCardPreview.getSSRCardPreview)(ssr, mediaClient, identifier.id, _this.getImageURLParams(identifier), _this.getMediaBlobUrlAttrs(identifier));
|
|
165
|
+
} catch (e) {// TODO: log SSR reliability 'failed'
|
|
166
|
+
// https://product-fabric.atlassian.net/browse/MEX-770
|
|
167
|
+
}
|
|
168
|
+
});
|
|
169
|
+
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "resolvePreview", /*#__PURE__*/function () {
|
|
170
|
+
var _ref2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(identifier, fileState) {
|
|
171
|
+
var params, cardPreview, wrappedError;
|
|
172
|
+
return _regenerator.default.wrap(function _callee$(_context) {
|
|
173
|
+
while (1) {
|
|
174
|
+
switch (_context.prev = _context.next) {
|
|
175
|
+
case 0:
|
|
176
|
+
_context.prev = 0;
|
|
177
|
+
params = _this.getCardPreviewParams(identifier, fileState);
|
|
178
|
+
_context.next = 4;
|
|
179
|
+
return (0, _getCardPreview.getCardPreview)(params);
|
|
180
|
+
|
|
181
|
+
case 4:
|
|
182
|
+
cardPreview = _context.sent;
|
|
183
|
+
|
|
184
|
+
_this.safeSetState({
|
|
185
|
+
cardPreview: cardPreview
|
|
186
|
+
});
|
|
187
|
+
|
|
188
|
+
_context.next = 12;
|
|
189
|
+
break;
|
|
190
|
+
|
|
191
|
+
case 8:
|
|
192
|
+
_context.prev = 8;
|
|
193
|
+
_context.t0 = _context["catch"](0);
|
|
194
|
+
wrappedError = (0, _errors.ensureMediaCardError)('preview-fetch', _context.t0); // If remote preview fails, we set status 'error'
|
|
195
|
+
// If local preview fails (i.e, no remote preview available),
|
|
196
|
+
// we can stay in the same status until there is a remote preview available
|
|
197
|
+
// If it's any other error we set status 'error'
|
|
198
|
+
|
|
199
|
+
if ((0, _errors.isLocalPreviewError)(wrappedError)) {
|
|
200
|
+
_this.safeSetState({
|
|
201
|
+
isBannedLocalPreview: true
|
|
202
|
+
});
|
|
203
|
+
} else {
|
|
204
|
+
_this.safeSetState({
|
|
205
|
+
status: 'error',
|
|
206
|
+
error: wrappedError
|
|
207
|
+
});
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
case 12:
|
|
211
|
+
case "end":
|
|
212
|
+
return _context.stop();
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
}, _callee, null, [[0, 8]]);
|
|
216
|
+
}));
|
|
217
|
+
|
|
218
|
+
return function (_x, _x2) {
|
|
219
|
+
return _ref2.apply(this, arguments);
|
|
220
|
+
};
|
|
221
|
+
}());
|
|
222
|
+
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "getPerformanceAttributes", function () {
|
|
223
|
+
var _assertThisInitialize = (0, _assertThisInitialized2.default)(_this),
|
|
224
|
+
timeElapsedTillCommenced = _assertThisInitialize.timeElapsedTillCommenced;
|
|
225
|
+
|
|
226
|
+
var timeElapsedTillEvent = performance.now();
|
|
227
|
+
var durationSinceCommenced = timeElapsedTillCommenced && timeElapsedTillEvent - timeElapsedTillCommenced;
|
|
228
|
+
return {
|
|
229
|
+
overall: {
|
|
230
|
+
durationSincePageStart: timeElapsedTillEvent,
|
|
231
|
+
durationSinceCommenced: durationSinceCommenced
|
|
232
|
+
}
|
|
233
|
+
};
|
|
234
|
+
});
|
|
235
|
+
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "onImageError", function () {
|
|
236
|
+
var cardPreview = _this.state.cardPreview;
|
|
237
|
+
var error = new _errors.ImageLoadError(cardPreview === null || cardPreview === void 0 ? void 0 : cardPreview.source);
|
|
238
|
+
var isLocal = cardPreview && (0, _getCardPreview.isLocalPreview)(cardPreview);
|
|
239
|
+
var isSSR = cardPreview && (0, _getCardPreview.isSSRClientPreview)(cardPreview);
|
|
240
|
+
|
|
241
|
+
if (isLocal || isSSR) {
|
|
242
|
+
var updateState = {
|
|
243
|
+
cardPreview: undefined
|
|
244
|
+
};
|
|
245
|
+
|
|
246
|
+
if (isLocal) {
|
|
247
|
+
updateState.isBannedLocalPreview = true;
|
|
248
|
+
|
|
249
|
+
_this.fireLocalPreviewErrorEvent(error);
|
|
250
|
+
}
|
|
251
|
+
|
|
252
|
+
if (isSSR) {// TODO: set SSR-client reliability 'failed'.
|
|
253
|
+
// https://product-fabric.atlassian.net/browse/MEX-770
|
|
254
|
+
}
|
|
255
|
+
|
|
256
|
+
var _this$props4 = _this.props,
|
|
257
|
+
identifier = _this$props4.identifier,
|
|
258
|
+
_this$props4$dimensio = _this$props4.dimensions,
|
|
259
|
+
dimensions = _this$props4$dimensio === void 0 ? {} : _this$props4$dimensio;
|
|
260
|
+
(0, _mediaClient.isFileIdentifier)(identifier) && (0, _getCardPreview.removeCardPreviewFromCache)(identifier.id, dimensions);
|
|
261
|
+
|
|
262
|
+
_this.safeSetState(updateState);
|
|
263
|
+
} else {
|
|
264
|
+
_this.safeSetState({
|
|
265
|
+
status: 'error',
|
|
266
|
+
error: error
|
|
267
|
+
});
|
|
268
|
+
}
|
|
269
|
+
});
|
|
270
|
+
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "onImageLoad", function () {
|
|
271
|
+
_this.safeSetState({
|
|
272
|
+
previewDidRender: true
|
|
273
|
+
});
|
|
274
|
+
});
|
|
166
275
|
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "fireCopiedEvent", function () {
|
|
167
276
|
var createAnalyticsEvent = _this.props.createAnalyticsEvent;
|
|
168
277
|
var cardRef = _this.state.cardRef;
|
|
169
278
|
cardRef && createAnalyticsEvent && (0, _cardAnalytics.fireCopiedEvent)(createAnalyticsEvent, _this.metadata.id, cardRef);
|
|
170
279
|
});
|
|
280
|
+
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "fireScreenEvent", function () {
|
|
281
|
+
var createAnalyticsEvent = _this.props.createAnalyticsEvent;
|
|
282
|
+
createAnalyticsEvent && (0, _cardAnalytics.fireScreenEvent)(createAnalyticsEvent, _this.fileAttributes);
|
|
283
|
+
});
|
|
284
|
+
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "fireLocalPreviewErrorEvent", function (error) {// TODO: track local preview success rate
|
|
285
|
+
// https://product-fabric.atlassian.net/browse/MEX-774
|
|
286
|
+
});
|
|
171
287
|
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "safeSetState", function (state) {
|
|
172
288
|
if (_this.hasBeenMounted) {
|
|
173
|
-
|
|
289
|
+
// If it's setting the status, we need to use a state updater function,
|
|
290
|
+
// which ensures that no non-final status overrides a final status.
|
|
291
|
+
// If no status is set, we don't need a sate updater
|
|
292
|
+
var updater = !!state.status ? (0, _cardState.createStateUpdater)(state) : state;
|
|
293
|
+
|
|
294
|
+
_this.setState(updater);
|
|
174
295
|
}
|
|
175
296
|
});
|
|
176
297
|
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "unsubscribe", function () {
|
|
@@ -179,20 +300,21 @@ var CardBase = /*#__PURE__*/function (_Component) {
|
|
|
179
300
|
}
|
|
180
301
|
|
|
181
302
|
if (_this.hasBeenMounted) {
|
|
303
|
+
// TODO MEX-788: add test for "do not remove the card preview when unsubscribing".
|
|
182
304
|
_this.setState({
|
|
183
|
-
|
|
305
|
+
isBannedLocalPreview: false
|
|
184
306
|
});
|
|
185
307
|
}
|
|
186
308
|
});
|
|
187
309
|
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "onCardViewClick", function (event, analyticsEvent) {
|
|
188
|
-
var _this$
|
|
189
|
-
identifier = _this$
|
|
190
|
-
useInlinePlayer = _this$
|
|
191
|
-
shouldOpenMediaViewer = _this$
|
|
310
|
+
var _this$props5 = _this.props,
|
|
311
|
+
identifier = _this$props5.identifier,
|
|
312
|
+
useInlinePlayer = _this$props5.useInlinePlayer,
|
|
313
|
+
shouldOpenMediaViewer = _this$props5.shouldOpenMediaViewer;
|
|
192
314
|
var cardPreview = _this.state.cardPreview;
|
|
193
315
|
|
|
194
|
-
var
|
|
195
|
-
metadata =
|
|
316
|
+
var _assertThisInitialize2 = (0, _assertThisInitialized2.default)(_this),
|
|
317
|
+
metadata = _assertThisInitialize2.metadata;
|
|
196
318
|
|
|
197
319
|
_this.onClick(event, analyticsEvent);
|
|
198
320
|
|
|
@@ -240,13 +362,13 @@ var CardBase = /*#__PURE__*/function (_Component) {
|
|
|
240
362
|
});
|
|
241
363
|
});
|
|
242
364
|
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "renderInlinePlayer", function () {
|
|
243
|
-
var _this$
|
|
244
|
-
identifier = _this$
|
|
245
|
-
mediaClient = _this$
|
|
246
|
-
dimensions = _this$
|
|
247
|
-
selected = _this$
|
|
248
|
-
testId = _this$
|
|
249
|
-
originalDimensions = _this$
|
|
365
|
+
var _this$props6 = _this.props,
|
|
366
|
+
identifier = _this$props6.identifier,
|
|
367
|
+
mediaClient = _this$props6.mediaClient,
|
|
368
|
+
dimensions = _this$props6.dimensions,
|
|
369
|
+
selected = _this$props6.selected,
|
|
370
|
+
testId = _this$props6.testId,
|
|
371
|
+
originalDimensions = _this$props6.originalDimensions;
|
|
250
372
|
return /*#__PURE__*/_react.default.createElement(_inlinePlayer.InlinePlayer, {
|
|
251
373
|
mediaClient: mediaClient,
|
|
252
374
|
dimensions: dimensions,
|
|
@@ -286,12 +408,12 @@ var CardBase = /*#__PURE__*/function (_Component) {
|
|
|
286
408
|
});
|
|
287
409
|
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "renderMediaViewer", function () {
|
|
288
410
|
var mediaViewerSelectedItem = _this.state.mediaViewerSelectedItem;
|
|
289
|
-
var _this$
|
|
290
|
-
mediaClient = _this$
|
|
291
|
-
identifier = _this$
|
|
292
|
-
mediaViewerDataSource = _this$
|
|
293
|
-
contextId = _this$
|
|
294
|
-
featureFlags = _this$
|
|
411
|
+
var _this$props7 = _this.props,
|
|
412
|
+
mediaClient = _this$props7.mediaClient,
|
|
413
|
+
identifier = _this$props7.identifier,
|
|
414
|
+
mediaViewerDataSource = _this$props7.mediaViewerDataSource,
|
|
415
|
+
contextId = _this$props7.contextId,
|
|
416
|
+
featureFlags = _this$props7.featureFlags;
|
|
295
417
|
|
|
296
418
|
if (!mediaViewerSelectedItem) {
|
|
297
419
|
return;
|
|
@@ -312,20 +434,21 @@ var CardBase = /*#__PURE__*/function (_Component) {
|
|
|
312
434
|
}), document.body);
|
|
313
435
|
});
|
|
314
436
|
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "renderCard", function () {
|
|
315
|
-
var _this$
|
|
316
|
-
identifier = _this$
|
|
317
|
-
isLazy = _this$
|
|
318
|
-
appearance = _this$
|
|
319
|
-
resizeMode = _this$
|
|
320
|
-
dimensions = _this$
|
|
321
|
-
selectable = _this$
|
|
322
|
-
selected = _this$
|
|
323
|
-
disableOverlay = _this$
|
|
324
|
-
alt = _this$
|
|
325
|
-
testId = _this$
|
|
326
|
-
featureFlags = _this$
|
|
327
|
-
titleBoxBgColor = _this$
|
|
328
|
-
titleBoxIcon = _this$
|
|
437
|
+
var _this$props8 = _this.props,
|
|
438
|
+
identifier = _this$props8.identifier,
|
|
439
|
+
isLazy = _this$props8.isLazy,
|
|
440
|
+
appearance = _this$props8.appearance,
|
|
441
|
+
resizeMode = _this$props8.resizeMode,
|
|
442
|
+
dimensions = _this$props8.dimensions,
|
|
443
|
+
selectable = _this$props8.selectable,
|
|
444
|
+
selected = _this$props8.selected,
|
|
445
|
+
disableOverlay = _this$props8.disableOverlay,
|
|
446
|
+
alt = _this$props8.alt,
|
|
447
|
+
testId = _this$props8.testId,
|
|
448
|
+
featureFlags = _this$props8.featureFlags,
|
|
449
|
+
titleBoxBgColor = _this$props8.titleBoxBgColor,
|
|
450
|
+
titleBoxIcon = _this$props8.titleBoxIcon,
|
|
451
|
+
ssr = _this$props8.ssr;
|
|
329
452
|
var mediaItemType = identifier.mediaItemType;
|
|
330
453
|
var _this$state = _this.state,
|
|
331
454
|
status = _this$state.status,
|
|
@@ -338,21 +461,27 @@ var CardBase = /*#__PURE__*/function (_Component) {
|
|
|
338
461
|
var dataURI = _this$state$cardPrevi.dataURI,
|
|
339
462
|
orientation = _this$state$cardPrevi.orientation,
|
|
340
463
|
error = _this$state.error,
|
|
341
|
-
cardRef = _this$state.cardRef
|
|
342
|
-
|
|
343
|
-
var _assertThisInitialize2 = (0, _assertThisInitialized2.default)(_this),
|
|
344
|
-
metadata = _assertThisInitialize2.metadata,
|
|
345
|
-
timeElapsedTillCommenced = _assertThisInitialize2.timeElapsedTillCommenced;
|
|
464
|
+
cardRef = _this$state.cardRef,
|
|
465
|
+
isCardVisible = _this$state.isCardVisible;
|
|
346
466
|
|
|
347
467
|
var _assertThisInitialize3 = (0, _assertThisInitialized2.default)(_this),
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
468
|
+
metadata = _assertThisInitialize3.metadata;
|
|
469
|
+
|
|
470
|
+
var _assertThisInitialize4 = (0, _assertThisInitialized2.default)(_this),
|
|
471
|
+
onCardViewClick = _assertThisInitialize4.onCardViewClick,
|
|
472
|
+
onDisplayImage = _assertThisInitialize4.onDisplayImage,
|
|
473
|
+
actions = _assertThisInitialize4.actions,
|
|
474
|
+
onMouseEnter = _assertThisInitialize4.onMouseEnter; // Card can be artificially turned visible before entering the viewport
|
|
475
|
+
// For example, when we have the image in cache
|
|
476
|
+
|
|
477
|
+
|
|
478
|
+
var nativeLazyLoad = isLazy && !isCardVisible; // Force Media Image to always display img for SSR
|
|
479
|
+
|
|
480
|
+
var forceSyncDisplay = !!ssr;
|
|
352
481
|
|
|
353
482
|
var card = /*#__PURE__*/_react.default.createElement(_cardView.CardView, {
|
|
354
483
|
status: status,
|
|
355
|
-
error: error
|
|
484
|
+
error: error,
|
|
356
485
|
mediaItemType: mediaItemType,
|
|
357
486
|
metadata: metadata,
|
|
358
487
|
dataURI: dataURI,
|
|
@@ -374,7 +503,10 @@ var CardBase = /*#__PURE__*/function (_Component) {
|
|
|
374
503
|
featureFlags: featureFlags,
|
|
375
504
|
titleBoxBgColor: titleBoxBgColor,
|
|
376
505
|
titleBoxIcon: titleBoxIcon,
|
|
377
|
-
|
|
506
|
+
onImageError: _this.onImageError,
|
|
507
|
+
onImageLoad: _this.onImageLoad,
|
|
508
|
+
nativeLazyLoad: nativeLazyLoad,
|
|
509
|
+
forceSyncDisplay: forceSyncDisplay
|
|
378
510
|
});
|
|
379
511
|
|
|
380
512
|
return isLazy ? /*#__PURE__*/_react.default.createElement(_viewportDetector.ViewportDetector, {
|
|
@@ -390,8 +522,8 @@ var CardBase = /*#__PURE__*/function (_Component) {
|
|
|
390
522
|
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "onClick", function (event, analyticsEvent) {
|
|
391
523
|
var onClick = _this.props.onClick;
|
|
392
524
|
|
|
393
|
-
var
|
|
394
|
-
metadata =
|
|
525
|
+
var _assertThisInitialize5 = (0, _assertThisInitialized2.default)(_this),
|
|
526
|
+
metadata = _assertThisInitialize5.metadata;
|
|
395
527
|
|
|
396
528
|
if (onClick) {
|
|
397
529
|
var cardEvent = {
|
|
@@ -404,8 +536,8 @@ var CardBase = /*#__PURE__*/function (_Component) {
|
|
|
404
536
|
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "onMouseEnter", function (event) {
|
|
405
537
|
var onMouseEnter = _this.props.onMouseEnter;
|
|
406
538
|
|
|
407
|
-
var
|
|
408
|
-
metadata =
|
|
539
|
+
var _assertThisInitialize6 = (0, _assertThisInitialized2.default)(_this),
|
|
540
|
+
metadata = _assertThisInitialize6.metadata;
|
|
409
541
|
|
|
410
542
|
if (onMouseEnter) {
|
|
411
543
|
var cardEvent = {
|
|
@@ -419,38 +551,47 @@ var CardBase = /*#__PURE__*/function (_Component) {
|
|
|
419
551
|
|
|
420
552
|
var _cardPreview;
|
|
421
553
|
|
|
422
|
-
var _this$
|
|
423
|
-
_identifier = _this$
|
|
424
|
-
_this$
|
|
425
|
-
_dimensions = _this$
|
|
554
|
+
var _this$props9 = _this.props,
|
|
555
|
+
_identifier = _this$props9.identifier,
|
|
556
|
+
_this$props9$dimensio = _this$props9.dimensions,
|
|
557
|
+
_dimensions = _this$props9$dimensio === void 0 ? {} : _this$props9$dimensio,
|
|
558
|
+
_ssr = _this$props9.ssr;
|
|
426
559
|
|
|
427
560
|
if ((0, _mediaClient.isFileIdentifier)(_identifier)) {
|
|
428
561
|
var id = _identifier.id;
|
|
429
562
|
_cardPreview = (0, _getCardPreview.getCardPreviewFromCache)(id, _dimensions);
|
|
563
|
+
|
|
564
|
+
if (!_cardPreview && _ssr) {
|
|
565
|
+
_this.fireCommencedEvent();
|
|
566
|
+
|
|
567
|
+
_cardPreview = _this.resolveSSRPreview(_identifier, _ssr);
|
|
568
|
+
}
|
|
430
569
|
} else if ((0, _mediaClient.isExternalImageIdentifier)(_identifier)) {
|
|
431
570
|
_this.fireCommencedEvent();
|
|
432
571
|
|
|
433
|
-
_status = '
|
|
572
|
+
_status = 'loading-preview';
|
|
434
573
|
var dataURI = _identifier.dataURI;
|
|
435
574
|
_cardPreview = {
|
|
436
575
|
dataURI: dataURI,
|
|
437
576
|
orientation: 1,
|
|
438
577
|
source: 'external'
|
|
439
578
|
};
|
|
440
|
-
}
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
*/
|
|
579
|
+
} // If cardPreview is available from local cache or external, `isCardVisible`
|
|
580
|
+
// should be true to avoid flickers during re-mount of the component
|
|
581
|
+
// should not be visible for SSR preview, otherwise we'll fire the metadata fetch from
|
|
582
|
+
// outside the viewport
|
|
445
583
|
|
|
446
584
|
|
|
447
|
-
var
|
|
585
|
+
var _isCardVisible = !_this.props.isLazy || !!_cardPreview && !(0, _getCardPreview.isSSRPreview)(_cardPreview);
|
|
586
|
+
|
|
448
587
|
_this.state = {
|
|
449
588
|
status: _status,
|
|
450
|
-
isCardVisible:
|
|
589
|
+
isCardVisible: _isCardVisible,
|
|
451
590
|
isPlayingFile: false,
|
|
452
591
|
cardPreview: _cardPreview,
|
|
453
|
-
cardRef: null
|
|
592
|
+
cardRef: null,
|
|
593
|
+
isBannedLocalPreview: false,
|
|
594
|
+
previewDidRender: false
|
|
454
595
|
};
|
|
455
596
|
return _this;
|
|
456
597
|
}
|
|
@@ -459,11 +600,21 @@ var CardBase = /*#__PURE__*/function (_Component) {
|
|
|
459
600
|
key: "componentDidMount",
|
|
460
601
|
value: function componentDidMount() {
|
|
461
602
|
this.hasBeenMounted = true;
|
|
462
|
-
var
|
|
463
|
-
|
|
603
|
+
var _this$state2 = this.state,
|
|
604
|
+
isCardVisible = _this$state2.isCardVisible,
|
|
605
|
+
cardPreview = _this$state2.cardPreview;
|
|
606
|
+
var _this$props10 = this.props,
|
|
607
|
+
identifier = _this$props10.identifier,
|
|
608
|
+
ssr = _this$props10.ssr;
|
|
464
609
|
|
|
465
610
|
if (isCardVisible && (0, _mediaClient.isFileIdentifier)(identifier)) {
|
|
466
611
|
this.updateStateForIdentifier(identifier);
|
|
612
|
+
}
|
|
613
|
+
|
|
614
|
+
if (isCardVisible && !!ssr && !!cardPreview && (0, _getCardPreview.isSSRClientPreview)(cardPreview) && (0, _mediaClient.isFileIdentifier)(identifier)) {
|
|
615
|
+
// Since the SSR preview brings the token in the query params,
|
|
616
|
+
// We need to fetch the remote preview to be able to cache it,
|
|
617
|
+
this.setCacheSSRPreview(identifier);
|
|
467
618
|
} // we add a listener for each of the cards on the page
|
|
468
619
|
// and then check if the triggered listener is from the card
|
|
469
620
|
// that contains a div in current window.getSelection()
|
|
@@ -479,19 +630,27 @@ var CardBase = /*#__PURE__*/function (_Component) {
|
|
|
479
630
|
prevIdentifier = prevProps.identifier,
|
|
480
631
|
prevDimensions = prevProps.dimensions;
|
|
481
632
|
var prevIsCardVisible = prevState.isCardVisible;
|
|
482
|
-
var _this$
|
|
483
|
-
mediaClient = _this$
|
|
484
|
-
identifier = _this$
|
|
485
|
-
dimensions = _this$
|
|
486
|
-
|
|
633
|
+
var _this$props11 = this.props,
|
|
634
|
+
mediaClient = _this$props11.mediaClient,
|
|
635
|
+
identifier = _this$props11.identifier,
|
|
636
|
+
dimensions = _this$props11.dimensions,
|
|
637
|
+
featureFlags = _this$props11.featureFlags;
|
|
638
|
+
var _this$state3 = this.state,
|
|
639
|
+
isCardVisible = _this$state3.isCardVisible,
|
|
640
|
+
cardPreview = _this$state3.cardPreview,
|
|
641
|
+
status = _this$state3.status,
|
|
642
|
+
fileState = _this$state3.fileState,
|
|
643
|
+
isBannedLocalPreview = _this$state3.isBannedLocalPreview,
|
|
644
|
+
previewDidRender = _this$state3.previewDidRender;
|
|
487
645
|
var isDifferent = (0, _mediaClient.isDifferentIdentifier)(prevIdentifier, identifier);
|
|
488
646
|
var turnedVisible = !prevIsCardVisible && isCardVisible;
|
|
647
|
+
var isNewMediaClient = prevMediaClient !== mediaClient;
|
|
489
648
|
|
|
490
649
|
if ((0, _mediaClient.isExternalImageIdentifier)(identifier) && isDifferent) {
|
|
491
650
|
this.fireCommencedEvent();
|
|
492
651
|
var dataURI = identifier.dataURI;
|
|
493
652
|
this.setState({
|
|
494
|
-
status: '
|
|
653
|
+
status: 'loading-preview',
|
|
495
654
|
cardPreview: {
|
|
496
655
|
dataURI: dataURI,
|
|
497
656
|
orientation: 1,
|
|
@@ -501,13 +660,42 @@ var CardBase = /*#__PURE__*/function (_Component) {
|
|
|
501
660
|
});
|
|
502
661
|
}
|
|
503
662
|
|
|
504
|
-
if ((0, _mediaClient.isFileIdentifier)(identifier) && (turnedVisible ||
|
|
505
|
-
this.shouldRefetchImage(prevDimensions, dimensions))) {
|
|
663
|
+
if ((0, _mediaClient.isFileIdentifier)(identifier) && (turnedVisible || !!this.subscription && (isNewMediaClient || isDifferent))) {
|
|
506
664
|
this.updateStateForIdentifier(identifier);
|
|
507
665
|
}
|
|
508
666
|
|
|
509
667
|
if (this.state.status !== prevState.status) {
|
|
510
668
|
this.fireOperationalEvent();
|
|
669
|
+
|
|
670
|
+
if (this.state.status === 'complete' || this.fileAttributes.fileMediatype === 'video' && !!cardPreview && this.state.status === 'processing') {
|
|
671
|
+
this.fireScreenEvent();
|
|
672
|
+
}
|
|
673
|
+
}
|
|
674
|
+
|
|
675
|
+
if ((0, _mediaClient.isFileIdentifier)(identifier) && fileState && (0, _getCardPreview.shouldResolvePreview)({
|
|
676
|
+
status: status,
|
|
677
|
+
fileState: fileState,
|
|
678
|
+
dimensions: dimensions,
|
|
679
|
+
prevDimensions: prevDimensions,
|
|
680
|
+
featureFlags: featureFlags,
|
|
681
|
+
hasCardPreview: !!cardPreview,
|
|
682
|
+
isBannedLocalPreview: isBannedLocalPreview
|
|
683
|
+
})) {
|
|
684
|
+
this.resolvePreview(identifier, fileState);
|
|
685
|
+
}
|
|
686
|
+
|
|
687
|
+
if (turnedVisible && this.props.ssr && !!cardPreview && (0, _getCardPreview.isSSRClientPreview)(cardPreview) && (0, _mediaClient.isFileIdentifier)(identifier)) {
|
|
688
|
+
// Since the SSR preview brings the token in the query params,
|
|
689
|
+
// We need to fetch the remote preview to be able to cache it,
|
|
690
|
+
this.setCacheSSRPreview(identifier);
|
|
691
|
+
}
|
|
692
|
+
|
|
693
|
+
if (previewDidRender && // We should't complete if status is uploading
|
|
694
|
+
['loading-preview', 'processing'].includes(status)) {
|
|
695
|
+
this.safeSetState({
|
|
696
|
+
status: 'complete'
|
|
697
|
+
});
|
|
698
|
+
this.unsubscribe();
|
|
511
699
|
}
|
|
512
700
|
}
|
|
513
701
|
}, {
|
|
@@ -529,6 +717,7 @@ var CardBase = /*#__PURE__*/function (_Component) {
|
|
|
529
717
|
var _this2 = this;
|
|
530
718
|
|
|
531
719
|
var mediaClient = this.props.mediaClient;
|
|
720
|
+
var isBannedLocalPreview = this.state.isBannedLocalPreview;
|
|
532
721
|
var id = identifier.id,
|
|
533
722
|
collectionName = identifier.collectionName,
|
|
534
723
|
occurrenceKey = identifier.occurrenceKey;
|
|
@@ -537,160 +726,58 @@ var CardBase = /*#__PURE__*/function (_Component) {
|
|
|
537
726
|
collectionName: collectionName,
|
|
538
727
|
occurrenceKey: occurrenceKey
|
|
539
728
|
}).subscribe({
|
|
540
|
-
next: function () {
|
|
541
|
-
var
|
|
542
|
-
|
|
543
|
-
return _regenerator.default.wrap(function _callee$(_context) {
|
|
544
|
-
while (1) {
|
|
545
|
-
switch (_context.prev = _context.next) {
|
|
546
|
-
case 0:
|
|
547
|
-
_this2.lastFileState = fileState;
|
|
548
|
-
thisCardStatusUpdateTimestamp = (performance || Date).now();
|
|
549
|
-
filePreviewStatus = (0, _getCardPreview.extractFilePreviewStatus)(fileState, _this2.props.featureFlags);
|
|
550
|
-
status = (0, _getCardStatus.getCardStatus)(fileState.status, filePreviewStatus);
|
|
551
|
-
|
|
552
|
-
_this2.safeSetState({
|
|
553
|
-
fileState: fileState
|
|
554
|
-
});
|
|
555
|
-
|
|
556
|
-
if (!(0, _getCardPreview.shouldGetCardPreview)(status, filePreviewStatus)) {
|
|
557
|
-
_context.next = 17;
|
|
558
|
-
break;
|
|
559
|
-
}
|
|
560
|
-
|
|
561
|
-
_context.prev = 6;
|
|
562
|
-
_context.next = 9;
|
|
563
|
-
return (0, _getCardPreview.getCardPreview)(_this2.getCardPreviewParams(id, collectionName, fileState));
|
|
564
|
-
|
|
565
|
-
case 9:
|
|
566
|
-
cardPreview = _context.sent;
|
|
567
|
-
|
|
568
|
-
if (['loading-preview', 'processing'].includes(status)) {
|
|
569
|
-
status = 'complete';
|
|
570
|
-
}
|
|
571
|
-
|
|
572
|
-
_context.next = 17;
|
|
573
|
-
break;
|
|
574
|
-
|
|
575
|
-
case 13:
|
|
576
|
-
_context.prev = 13;
|
|
577
|
-
_context.t0 = _context["catch"](6);
|
|
578
|
-
wrappedError = (0, _errors.ensureMediaCardError)('preview-fetch', _context.t0);
|
|
579
|
-
/**
|
|
580
|
-
* If remote preview fails, we set status 'error'
|
|
581
|
-
* If the local preview fails (i.e, no remote preview available),
|
|
582
|
-
* we can stay in the same status until there is a remote preview available
|
|
583
|
-
* */
|
|
584
|
-
|
|
585
|
-
if ((0, _errors.isRemotePreviewError)(wrappedError)) {
|
|
586
|
-
status = 'error';
|
|
587
|
-
error = wrappedError;
|
|
588
|
-
}
|
|
589
|
-
|
|
590
|
-
case 17:
|
|
591
|
-
if (_this2.isLatestCardStatusUpdate(thisCardStatusUpdateTimestamp)) {
|
|
592
|
-
// These status and progress must not override values representing more recent FileState
|
|
593
|
-
|
|
594
|
-
/* next() start some await() delay in next() status & progress update
|
|
595
|
-
* ------- ------------------ ------------------------
|
|
596
|
-
* |----[1]FileState:uploading------>| |
|
|
597
|
-
* | | |
|
|
598
|
-
* |----[2]FileState:uploading------>| |
|
|
599
|
-
* | | |
|
|
600
|
-
* | |----[2]FileState:uploading------>| Update status to `uploading`
|
|
601
|
-
* |----[3]FileState:processing----->| |
|
|
602
|
-
* | |----[3]FileState:processing----->| Update status to `complete`
|
|
603
|
-
* | | |
|
|
604
|
-
* | |----[1]FileState:uploading------>| We do not want to update status to `uploading` again!
|
|
605
|
-
*
|
|
606
|
-
*/
|
|
607
|
-
if (status === 'error' && (0, _mediaClient.isErrorFileState)(fileState) && !error) {
|
|
608
|
-
error = new _errors.MediaCardError('error-file-state', new Error(fileState.message));
|
|
609
|
-
}
|
|
610
|
-
|
|
611
|
-
_this2.safeSetState({
|
|
612
|
-
status: status,
|
|
613
|
-
cardPreview: cardPreview,
|
|
614
|
-
progress: status === 'uploading' && fileState.status === 'uploading' ? fileState.progress : 1,
|
|
615
|
-
error: status === 'error' && error ? error : undefined
|
|
616
|
-
});
|
|
617
|
-
|
|
618
|
-
_this2.lastCardStatusUpdateTimestamp = thisCardStatusUpdateTimestamp;
|
|
619
|
-
}
|
|
620
|
-
|
|
621
|
-
case 18:
|
|
622
|
-
case "end":
|
|
623
|
-
return _context.stop();
|
|
624
|
-
}
|
|
625
|
-
}
|
|
626
|
-
}, _callee, null, [[6, 13]]);
|
|
627
|
-
}));
|
|
628
|
-
|
|
629
|
-
function next(_x) {
|
|
630
|
-
return _next.apply(this, arguments);
|
|
631
|
-
}
|
|
729
|
+
next: function next(fileState) {
|
|
730
|
+
var featureFlags = _this2.props.featureFlags;
|
|
731
|
+
var newState = (0, _cardState.getCardStateFromFileState)(fileState, isBannedLocalPreview, featureFlags);
|
|
632
732
|
|
|
633
|
-
|
|
634
|
-
}
|
|
733
|
+
_this2.safeSetState(newState);
|
|
734
|
+
},
|
|
635
735
|
error: function error(e) {
|
|
636
|
-
|
|
637
|
-
// and later there is an error, we won't change the card's status.
|
|
638
|
-
if (_this2.state.status === 'complete') {
|
|
639
|
-
return;
|
|
640
|
-
}
|
|
641
|
-
|
|
642
|
-
var errorReason = _this2.fileAttributes.fileStatus === 'uploading' ? 'upload' : 'metadata-fetch';
|
|
736
|
+
var errorReason = _this2.state.status === 'uploading' ? 'upload' : 'metadata-fetch';
|
|
643
737
|
var error = new _errors.MediaCardError(errorReason, e);
|
|
644
738
|
|
|
645
739
|
_this2.safeSetState({
|
|
646
740
|
error: error,
|
|
647
741
|
status: 'error'
|
|
648
742
|
});
|
|
649
|
-
|
|
650
|
-
_this2.lastCardStatusUpdateTimestamp = (performance || Date).now();
|
|
651
743
|
}
|
|
652
744
|
});
|
|
653
745
|
}
|
|
746
|
+
}, {
|
|
747
|
+
key: "requestedDimensions",
|
|
748
|
+
get: function get() {
|
|
749
|
+
var dimensions = this.props.dimensions;
|
|
750
|
+
|
|
751
|
+
var _ref3 = this.state || {},
|
|
752
|
+
element = _ref3.cardRef;
|
|
753
|
+
|
|
754
|
+
return (0, _getDataURIDimension.getRequestedDimensions)({
|
|
755
|
+
dimensions: dimensions,
|
|
756
|
+
element: element
|
|
757
|
+
});
|
|
758
|
+
}
|
|
654
759
|
}, {
|
|
655
760
|
key: "metadata",
|
|
656
761
|
get: function get() {
|
|
657
|
-
var
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
} : {
|
|
661
|
-
id: identifier.mediaItemType,
|
|
662
|
-
name: identifier.name || identifier.dataURI,
|
|
663
|
-
mediaType: 'image'
|
|
664
|
-
};
|
|
762
|
+
var _this$state4;
|
|
763
|
+
|
|
764
|
+
return (0, _metadata.getFileDetails)(this.props.identifier, (_this$state4 = this.state) === null || _this$state4 === void 0 ? void 0 : _this$state4.fileState);
|
|
665
765
|
}
|
|
666
766
|
}, {
|
|
667
767
|
key: "fileAttributes",
|
|
668
768
|
get: function get() {
|
|
669
|
-
var _this$
|
|
769
|
+
var _this$state5, _this$state5$fileStat;
|
|
670
770
|
|
|
671
|
-
return (0, _analytics.getFileAttributes)(this.metadata, (_this$
|
|
771
|
+
return (0, _analytics.getFileAttributes)(this.metadata, (_this$state5 = this.state) === null || _this$state5 === void 0 ? void 0 : (_this$state5$fileStat = _this$state5.fileState) === null || _this$state5$fileStat === void 0 ? void 0 : _this$state5$fileStat.status);
|
|
672
772
|
}
|
|
673
773
|
}, {
|
|
674
774
|
key: "fireOperationalEvent",
|
|
675
775
|
value: function fireOperationalEvent() {
|
|
676
|
-
var
|
|
677
|
-
|
|
678
|
-
|
|
679
|
-
cardPreview = _this$state2.cardPreview,
|
|
680
|
-
error = _this$state2.error;
|
|
776
|
+
var _this$state6 = this.state,
|
|
777
|
+
status = _this$state6.status,
|
|
778
|
+
error = _this$state6.error;
|
|
681
779
|
var createAnalyticsEvent = this.props.createAnalyticsEvent;
|
|
682
|
-
|
|
683
|
-
var durationSinceCommenced = timeElapsedTillCommenced && timeElapsedTillEvent - timeElapsedTillCommenced;
|
|
684
|
-
var performanceAttributes = {
|
|
685
|
-
overall: {
|
|
686
|
-
durationSincePageStart: timeElapsedTillEvent,
|
|
687
|
-
durationSinceCommenced: durationSinceCommenced
|
|
688
|
-
}
|
|
689
|
-
};
|
|
690
|
-
createAnalyticsEvent && (0, _cardAnalytics.fireOperationalEvent)(createAnalyticsEvent, status, this.fileAttributes, performanceAttributes, {
|
|
691
|
-
cardPreview: cardPreview,
|
|
692
|
-
error: error
|
|
693
|
-
});
|
|
780
|
+
createAnalyticsEvent && (0, _cardAnalytics.fireOperationalEvent)(createAnalyticsEvent, status, this.fileAttributes, this.getPerformanceAttributes(), error);
|
|
694
781
|
}
|
|
695
782
|
}, {
|
|
696
783
|
key: "fireCommencedEvent",
|
|
@@ -708,11 +795,11 @@ var CardBase = /*#__PURE__*/function (_Component) {
|
|
|
708
795
|
get: function get() {
|
|
709
796
|
var _this3 = this;
|
|
710
797
|
|
|
711
|
-
var _this$
|
|
712
|
-
_this$
|
|
713
|
-
actions = _this$
|
|
714
|
-
identifier = _this$
|
|
715
|
-
shouldEnableDownloadButton = _this$
|
|
798
|
+
var _this$props12 = this.props,
|
|
799
|
+
_this$props12$actions = _this$props12.actions,
|
|
800
|
+
actions = _this$props12$actions === void 0 ? [] : _this$props12$actions,
|
|
801
|
+
identifier = _this$props12.identifier,
|
|
802
|
+
shouldEnableDownloadButton = _this$props12.shouldEnableDownloadButton;
|
|
716
803
|
var status = this.state.status;
|
|
717
804
|
var metadata = this.metadata;
|
|
718
805
|
|
|
@@ -734,20 +821,15 @@ var CardBase = /*#__PURE__*/function (_Component) {
|
|
|
734
821
|
}, {
|
|
735
822
|
key: "render",
|
|
736
823
|
value: function render() {
|
|
737
|
-
var _this$
|
|
738
|
-
|
|
739
|
-
|
|
740
|
-
isPlayingFile = _this$state3.isPlayingFile,
|
|
741
|
-
mediaViewerSelectedItem = _this$state3.mediaViewerSelectedItem;
|
|
824
|
+
var _this$state7 = this.state,
|
|
825
|
+
isPlayingFile = _this$state7.isPlayingFile,
|
|
826
|
+
mediaViewerSelectedItem = _this$state7.mediaViewerSelectedItem;
|
|
742
827
|
|
|
743
828
|
var innerContent = /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, isPlayingFile ? this.renderInlinePlayer() : this.renderCard(), mediaViewerSelectedItem ? this.renderMediaViewer() : null);
|
|
744
829
|
|
|
745
|
-
|
|
830
|
+
return this.props.intl ? innerContent : /*#__PURE__*/_react.default.createElement(_reactIntlNext.IntlProvider, {
|
|
746
831
|
locale: "en"
|
|
747
832
|
}, innerContent);
|
|
748
|
-
return /*#__PURE__*/_react.default.createElement(_fileAttributesContext.FileAttributesProvider, {
|
|
749
|
-
data: (0, _analytics.getFileAttributes)(this.metadata, (_this$lastFileState2 = this.lastFileState) === null || _this$lastFileState2 === void 0 ? void 0 : _this$lastFileState2.status)
|
|
750
|
-
}, content);
|
|
751
833
|
}
|
|
752
834
|
}]);
|
|
753
835
|
return CardBase;
|
|
@@ -762,10 +844,6 @@ exports.CardBase = CardBase;
|
|
|
762
844
|
// Media Feature Flag defaults are defined in @atlaskit/media-common
|
|
763
845
|
featureFlags: {}
|
|
764
846
|
});
|
|
765
|
-
(0, _defineProperty2.default)(CardBase, "contextTypes", {
|
|
766
|
-
// Required to detect a parent IntlProvider
|
|
767
|
-
intl: _reactIntl.intlShape
|
|
768
|
-
});
|
|
769
847
|
var Card = (0, _mediaCommon.withMediaAnalyticsContext)({
|
|
770
848
|
packageVersion: _version.version,
|
|
771
849
|
packageName: _version.name,
|
|
@@ -773,5 +851,7 @@ var Card = (0, _mediaCommon.withMediaAnalyticsContext)({
|
|
|
773
851
|
component: 'mediaCard'
|
|
774
852
|
}, {
|
|
775
853
|
filterFeatureFlags: _cardAnalytics.relevantFeatureFlagNames
|
|
776
|
-
})((0, _analyticsNext.withAnalyticsEvents)()(CardBase
|
|
854
|
+
})((0, _analyticsNext.withAnalyticsEvents)()((0, _reactIntlNext.injectIntl)(CardBase, {
|
|
855
|
+
enforceContext: false
|
|
856
|
+
})));
|
|
777
857
|
exports.Card = Card;
|