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