@atlaskit/media-card 70.9.0 → 72.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (181) hide show
  1. package/CHANGELOG.md +69 -0
  2. package/dist/cjs/errors.js +109 -6
  3. package/dist/cjs/files/cardImageView/index.js +58 -89
  4. package/dist/cjs/files/index.js +0 -6
  5. package/dist/cjs/index.js +16 -6
  6. package/dist/cjs/root/card/cardAnalytics.js +33 -19
  7. package/dist/cjs/root/card/cardConstants.js +8 -0
  8. package/dist/cjs/root/card/cardSSRView.js +114 -0
  9. package/dist/cjs/root/card/cardState.js +50 -0
  10. package/dist/cjs/root/card/getCardPreview/cache.js +49 -0
  11. package/dist/cjs/root/card/getCardPreview/filePreviewStatus.js +50 -0
  12. package/dist/cjs/root/card/getCardPreview/helpers.js +215 -0
  13. package/dist/cjs/root/card/getCardPreview/index.js +225 -0
  14. package/dist/cjs/root/card/getCardStatus.js +16 -21
  15. package/dist/cjs/root/card/index.js +339 -398
  16. package/dist/cjs/root/cardView.js +108 -56
  17. package/dist/cjs/root/index.js +9 -1
  18. package/dist/cjs/root/inline/loader.js +22 -21
  19. package/dist/cjs/root/inline/{inlineMediaCard.js → mediaInlineCard.js} +66 -24
  20. package/dist/cjs/root/inlinePlayer.js +5 -15
  21. package/dist/cjs/root/ui/Breakpoint.js +13 -0
  22. package/dist/cjs/root/ui/common.js +5 -11
  23. package/dist/cjs/root/ui/iconMessage/index.js +17 -9
  24. package/dist/cjs/root/ui/imageRenderer/imageRenderer.js +32 -115
  25. package/dist/cjs/root/ui/loadingRateLimited/loadingRateLimited.js +2 -2
  26. package/dist/cjs/root/ui/progressBar/progressBar.js +2 -2
  27. package/dist/cjs/root/ui/progressBar/styled.js +3 -1
  28. package/dist/cjs/root/ui/styled.js +17 -80
  29. package/dist/cjs/root/ui/styledSSR.js +108 -0
  30. package/dist/cjs/root/ui/titleBox/failedTitleBox.js +7 -3
  31. package/dist/cjs/root/ui/titleBox/styled.js +3 -1
  32. package/dist/cjs/utils/analytics.js +26 -43
  33. package/dist/cjs/utils/dimensionComparer.js +1 -1
  34. package/dist/cjs/utils/document.js +12 -0
  35. package/dist/cjs/utils/getDataURIDimension.js +13 -2
  36. package/dist/cjs/utils/metadata.js +11 -3
  37. package/dist/cjs/utils/objectURLCache.js +6 -0
  38. package/dist/cjs/utils/resizeModeToMediaImageProps.js +13 -0
  39. package/dist/cjs/utils/shouldDisplayImageThumbnail.js +1 -1
  40. package/dist/cjs/utils/videoSnapshot.js +45 -0
  41. package/dist/cjs/version.json +1 -1
  42. package/dist/es2019/errors.js +52 -2
  43. package/dist/es2019/files/cardImageView/index.js +12 -46
  44. package/dist/es2019/files/index.js +1 -1
  45. package/dist/es2019/index.js +3 -3
  46. package/dist/es2019/root/card/cardAnalytics.js +23 -17
  47. package/dist/es2019/root/card/cardConstants.js +1 -0
  48. package/dist/es2019/root/card/cardSSRView.js +93 -0
  49. package/dist/es2019/root/card/cardState.js +26 -0
  50. package/dist/es2019/root/card/getCardPreview/cache.js +29 -0
  51. package/dist/es2019/root/card/getCardPreview/filePreviewStatus.js +35 -0
  52. package/dist/es2019/root/card/getCardPreview/helpers.js +83 -0
  53. package/dist/es2019/root/card/getCardPreview/index.js +129 -0
  54. package/dist/es2019/root/card/getCardStatus.js +11 -15
  55. package/dist/es2019/root/card/index.js +292 -276
  56. package/dist/es2019/root/cardView.js +107 -53
  57. package/dist/es2019/root/index.js +2 -1
  58. package/dist/es2019/root/inline/loader.js +16 -15
  59. package/dist/es2019/root/inline/mediaInlineCard.js +127 -0
  60. package/dist/es2019/root/inlinePlayer.js +5 -13
  61. package/dist/es2019/root/ui/Breakpoint.js +6 -0
  62. package/dist/es2019/root/ui/common.js +1 -7
  63. package/dist/es2019/root/ui/iconMessage/index.js +10 -6
  64. package/dist/es2019/root/ui/imageRenderer/imageRenderer.js +22 -74
  65. package/dist/es2019/root/ui/loadingRateLimited/loadingRateLimited.js +1 -1
  66. package/dist/es2019/root/ui/progressBar/progressBar.js +1 -1
  67. package/dist/es2019/root/ui/progressBar/styled.js +2 -1
  68. package/dist/es2019/root/ui/styled.js +4 -64
  69. package/dist/es2019/root/ui/styledSSR.js +93 -0
  70. package/dist/es2019/root/ui/titleBox/failedTitleBox.js +5 -3
  71. package/dist/es2019/root/ui/titleBox/styled.js +2 -1
  72. package/dist/es2019/utils/analytics.js +29 -40
  73. package/dist/es2019/utils/dimensionComparer.js +1 -1
  74. package/dist/es2019/utils/document.js +1 -0
  75. package/dist/es2019/utils/getDataURIDimension.js +8 -0
  76. package/dist/es2019/utils/metadata.js +12 -4
  77. package/dist/es2019/utils/objectURLCache.js +5 -0
  78. package/dist/es2019/utils/resizeModeToMediaImageProps.js +6 -0
  79. package/dist/es2019/utils/shouldDisplayImageThumbnail.js +1 -1
  80. package/dist/es2019/utils/videoSnapshot.js +7 -0
  81. package/dist/es2019/version.json +1 -1
  82. package/dist/esm/errors.js +85 -2
  83. package/dist/esm/files/cardImageView/index.js +55 -87
  84. package/dist/esm/files/index.js +1 -1
  85. package/dist/esm/index.js +3 -3
  86. package/dist/esm/root/card/cardAnalytics.js +23 -18
  87. package/dist/esm/root/card/cardConstants.js +1 -0
  88. package/dist/esm/root/card/cardSSRView.js +92 -0
  89. package/dist/esm/root/card/cardState.js +32 -0
  90. package/dist/esm/root/card/getCardPreview/cache.js +33 -0
  91. package/dist/esm/root/card/getCardPreview/filePreviewStatus.js +35 -0
  92. package/dist/esm/root/card/getCardPreview/helpers.js +194 -0
  93. package/dist/esm/root/card/getCardPreview/index.js +174 -0
  94. package/dist/esm/root/card/getCardStatus.js +13 -17
  95. package/dist/esm/root/card/index.js +349 -401
  96. package/dist/esm/root/cardView.js +105 -52
  97. package/dist/esm/root/index.js +2 -1
  98. package/dist/esm/root/inline/loader.js +23 -22
  99. package/dist/esm/root/inline/{inlineMediaCard.js → mediaInlineCard.js} +62 -22
  100. package/dist/esm/root/inlinePlayer.js +5 -13
  101. package/dist/esm/root/ui/Breakpoint.js +6 -0
  102. package/dist/esm/root/ui/common.js +1 -7
  103. package/dist/esm/root/ui/iconMessage/index.js +12 -7
  104. package/dist/esm/root/ui/imageRenderer/imageRenderer.js +24 -106
  105. package/dist/esm/root/ui/loadingRateLimited/loadingRateLimited.js +1 -1
  106. package/dist/esm/root/ui/progressBar/progressBar.js +1 -1
  107. package/dist/esm/root/ui/progressBar/styled.js +2 -1
  108. package/dist/esm/root/ui/styled.js +13 -61
  109. package/dist/esm/root/ui/styledSSR.js +76 -0
  110. package/dist/esm/root/ui/titleBox/failedTitleBox.js +6 -3
  111. package/dist/esm/root/ui/titleBox/styled.js +2 -1
  112. package/dist/esm/utils/analytics.js +22 -35
  113. package/dist/esm/utils/dimensionComparer.js +1 -1
  114. package/dist/esm/utils/document.js +3 -0
  115. package/dist/esm/utils/getDataURIDimension.js +8 -0
  116. package/dist/esm/utils/metadata.js +12 -4
  117. package/dist/esm/utils/objectURLCache.js +6 -0
  118. package/dist/esm/utils/resizeModeToMediaImageProps.js +6 -0
  119. package/dist/esm/utils/shouldDisplayImageThumbnail.js +1 -1
  120. package/dist/esm/utils/videoSnapshot.js +31 -0
  121. package/dist/esm/version.json +1 -1
  122. package/dist/types/__tests_external__/page-objects/MediaCard.d.ts +4 -3
  123. package/dist/types/errors.d.ts +24 -2
  124. package/dist/types/files/cardImageView/index.d.ts +5 -12
  125. package/dist/types/files/cardImageView/styled.d.ts +1 -1
  126. package/dist/types/files/index.d.ts +1 -1
  127. package/dist/types/index.d.ts +9 -12
  128. package/dist/types/root/card/cardAnalytics.d.ts +5 -7
  129. package/dist/types/root/card/cardConstants.d.ts +1 -0
  130. package/dist/types/root/card/cardSSRView.d.ts +13 -0
  131. package/dist/types/root/card/cardState.d.ts +5 -0
  132. package/dist/types/root/card/getCardPreview/cache.d.ts +18 -0
  133. package/dist/types/root/card/getCardPreview/filePreviewStatus.d.ts +5 -0
  134. package/dist/types/root/card/getCardPreview/helpers.d.ts +9 -0
  135. package/dist/types/root/card/getCardPreview/index.d.ts +44 -0
  136. package/dist/types/root/card/getCardStatus.d.ts +4 -14
  137. package/dist/types/root/card/index.d.ts +17 -21
  138. package/dist/types/root/cardView.d.ts +12 -8
  139. package/dist/types/root/index.d.ts +1 -0
  140. package/dist/types/root/inline/loader.d.ts +8 -8
  141. package/dist/types/root/inline/{inlineMediaCard.d.ts → mediaInlineCard.d.ts} +4 -4
  142. package/dist/types/root/inlinePlayer.d.ts +1 -1
  143. package/dist/types/root/ui/Breakpoint.d.ts +4 -0
  144. package/dist/types/root/ui/common.d.ts +1 -4
  145. package/dist/types/root/ui/iconMessage/index.d.ts +7 -2
  146. package/dist/types/root/ui/iconWrapper/styled.d.ts +1 -1
  147. package/dist/types/root/ui/imageRenderer/imageRenderer.d.ts +2 -16
  148. package/dist/types/root/ui/loadingRateLimited/loadingRateLimited.d.ts +1 -1
  149. package/dist/types/root/ui/loadingRateLimited/styled.d.ts +1 -1
  150. package/dist/types/root/ui/progressBar/progressBar.d.ts +1 -1
  151. package/dist/types/root/ui/progressBar/styled.d.ts +1 -1
  152. package/dist/types/root/ui/styled.d.ts +3 -10
  153. package/dist/types/root/ui/styledSSR.d.ts +16 -0
  154. package/dist/types/root/ui/titleBox/failedTitleBox.d.ts +3 -1
  155. package/dist/types/root/ui/titleBox/styled.d.ts +1 -1
  156. package/dist/types/root/ui/titleBox/titleBox.d.ts +1 -1
  157. package/dist/types/types.d.ts +15 -1
  158. package/dist/types/utils/analytics.d.ts +20 -21
  159. package/dist/types/utils/cardDimensions.d.ts +5 -1
  160. package/dist/types/utils/dimensionComparer.d.ts +1 -1
  161. package/dist/types/utils/document.d.ts +2 -0
  162. package/dist/types/utils/getDataURIDimension.d.ts +3 -1
  163. package/dist/types/utils/index.d.ts +1 -0
  164. package/dist/types/utils/lazyContent/styled.d.ts +1 -1
  165. package/dist/types/utils/lightCards/types.d.ts +1 -1
  166. package/dist/types/utils/metadata.d.ts +2 -2
  167. package/dist/types/utils/objectURLCache.d.ts +2 -1
  168. package/dist/types/utils/resizeModeToMediaImageProps.d.ts +5 -0
  169. package/dist/types/utils/shouldDisplayImageThumbnail.d.ts +1 -1
  170. package/dist/types/utils/videoSnapshot.d.ts +1 -0
  171. package/example-helpers/index.tsx +21 -0
  172. package/package.json +19 -17
  173. package/dist/cjs/root/card/getCardPreview.js +0 -173
  174. package/dist/cjs/utils/fileAttributesContext.js +0 -40
  175. package/dist/es2019/root/card/getCardPreview.js +0 -86
  176. package/dist/es2019/root/inline/inlineMediaCard.js +0 -92
  177. package/dist/es2019/utils/fileAttributesContext.js +0 -19
  178. package/dist/esm/root/card/getCardPreview.js +0 -153
  179. package/dist/esm/utils/fileAttributesContext.js +0 -18
  180. package/dist/types/root/card/getCardPreview.d.ts +0 -8
  181. package/dist/types/utils/fileAttributesContext.d.ts +0 -10
@@ -0,0 +1,225 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ Object.defineProperty(exports, "getCardPreviewFromFilePreview", {
9
+ enumerable: true,
10
+ get: function get() {
11
+ return _helpers.getCardPreviewFromFilePreview;
12
+ }
13
+ });
14
+ Object.defineProperty(exports, "getCardPreviewFromBackend", {
15
+ enumerable: true,
16
+ get: function get() {
17
+ return _helpers.getCardPreviewFromBackend;
18
+ }
19
+ });
20
+ Object.defineProperty(exports, "isSupportedLocalPreview", {
21
+ enumerable: true,
22
+ get: function get() {
23
+ return _helpers.isSupportedLocalPreview;
24
+ }
25
+ });
26
+ Object.defineProperty(exports, "extractFilePreviewStatus", {
27
+ enumerable: true,
28
+ get: function get() {
29
+ return _filePreviewStatus.extractFilePreviewStatus;
30
+ }
31
+ });
32
+ exports.shouldResolvePreview = exports.getCardPreview = exports.getFilePreviewFromFileState = exports.removeCardPreviewFromCache = exports.getCardPreviewFromCache = void 0;
33
+
34
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
35
+
36
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
37
+
38
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
39
+
40
+ var _mediaClient = require("@atlaskit/media-client");
41
+
42
+ var _mediaCommon = require("@atlaskit/media-common");
43
+
44
+ var _cache = _interopRequireDefault(require("./cache"));
45
+
46
+ var _helpers = require("./helpers");
47
+
48
+ var _errors = require("../../../errors");
49
+
50
+ var _dimensionComparer = require("../../../utils/dimensionComparer");
51
+
52
+ var _filePreviewStatus = require("./filePreviewStatus");
53
+
54
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
55
+
56
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
57
+
58
+ var getCardPreviewFromCache = _cache.default.get;
59
+ exports.getCardPreviewFromCache = getCardPreviewFromCache;
60
+ var removeCardPreviewFromCache = _cache.default.remove;
61
+ /**
62
+ * Will return the preview if available and supported by the browser
63
+ * See extractFilePreviewStatus "hasLocalPreview" logic
64
+ */
65
+
66
+ exports.removeCardPreviewFromCache = removeCardPreviewFromCache;
67
+
68
+ var getFilePreviewFromFileState = function getFilePreviewFromFileState(fileState) {
69
+ return 'mimeType' in fileState && (0, _mediaCommon.isMimeTypeSupportedByBrowser)(fileState.mimeType) && (0, _mediaClient.isPreviewableFileState)(fileState) ? fileState.preview : undefined;
70
+ };
71
+
72
+ exports.getFilePreviewFromFileState = getFilePreviewFromFileState;
73
+
74
+ var extendAndCachePreview = function extendAndCachePreview(id, dimensions, preview, mediaBlobUrlAttrs) {
75
+ var source;
76
+
77
+ switch (preview.source) {
78
+ case 'local':
79
+ source = 'cache-local';
80
+ break;
81
+
82
+ case 'remote':
83
+ source = 'cache-remote';
84
+ break;
85
+
86
+ default:
87
+ source = preview.source;
88
+ } // We want to embed some meta context into dataURI for Copy/Paste to work.
89
+
90
+
91
+ var dataURI = mediaBlobUrlAttrs ? (0, _mediaClient.addFileAttrsToUrl)(preview.dataURI, mediaBlobUrlAttrs) : preview.dataURI; // We store new cardPreview into cache
92
+
93
+ _cache.default.set(id, dimensions, _objectSpread(_objectSpread({}, preview), {}, {
94
+ source: source,
95
+ dataURI: dataURI
96
+ }));
97
+
98
+ return _objectSpread(_objectSpread({}, preview), {}, {
99
+ dataURI: dataURI
100
+ });
101
+ };
102
+ /**
103
+ * This function will try to return a Card preview, either from cache, local preview or remote preview.
104
+ * It should only be called if there is a chance to get either a remote or a local preview, or both.
105
+ * This, in order to ensure there is always going to be a valid return value OR throw an error if the process fails.
106
+ * It is worth noting that local preview failures break the process if there is no remote preview available.
107
+ * In that case we throw an error immediately.
108
+ * Otherwise, if the local preview fails but there is a remote preview available, the failure does not break the process.
109
+ * In that case, we still want to report the local preview error to the caller, for feature realiability track.
110
+ * hence the use of the optional callback onLocalPreviewError
111
+ */
112
+
113
+
114
+ var getCardPreview = /*#__PURE__*/function () {
115
+ var _ref2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(_ref) {
116
+ var mediaClient, id, _ref$dimensions, dimensions, filePreview, onLocalPreviewError, isRemotePreviewReady, imageUrlParams, mediaBlobUrlAttrs, cachedPreview, localPreview, remotePreview;
117
+
118
+ return _regenerator.default.wrap(function _callee$(_context) {
119
+ while (1) {
120
+ switch (_context.prev = _context.next) {
121
+ case 0:
122
+ mediaClient = _ref.mediaClient, id = _ref.id, _ref$dimensions = _ref.dimensions, dimensions = _ref$dimensions === void 0 ? {} : _ref$dimensions, filePreview = _ref.filePreview, onLocalPreviewError = _ref.onLocalPreviewError, isRemotePreviewReady = _ref.isRemotePreviewReady, imageUrlParams = _ref.imageUrlParams, mediaBlobUrlAttrs = _ref.mediaBlobUrlAttrs;
123
+ cachedPreview = _cache.default.get(id, dimensions);
124
+
125
+ if (!cachedPreview) {
126
+ _context.next = 4;
127
+ break;
128
+ }
129
+
130
+ return _context.abrupt("return", cachedPreview);
131
+
132
+ case 4:
133
+ _context.prev = 4;
134
+
135
+ if (!filePreview) {
136
+ _context.next = 10;
137
+ break;
138
+ }
139
+
140
+ _context.next = 8;
141
+ return (0, _helpers.getCardPreviewFromFilePreview)(filePreview);
142
+
143
+ case 8:
144
+ localPreview = _context.sent;
145
+ return _context.abrupt("return", extendAndCachePreview(id, dimensions, localPreview, mediaBlobUrlAttrs));
146
+
147
+ case 10:
148
+ _context.next = 17;
149
+ break;
150
+
151
+ case 12:
152
+ _context.prev = 12;
153
+ _context.t0 = _context["catch"](4);
154
+
155
+ /**
156
+ * We report the error if:
157
+ * - local preview is supported and fails
158
+ * - local preview is unsupported and remote preview is NOT READY
159
+ * i.e. the function was called for "no reason".
160
+ * We DON'T report the error if:
161
+ * - local preview is unsupported and remote preview IS READY
162
+ * i.e. local preview is available and not supported,
163
+ * but we are after the remote preview instead.
164
+ */
165
+ if (!(0, _errors.isUnsupportedLocalPreviewError)(_context.t0) || (0, _errors.isUnsupportedLocalPreviewError)(_context.t0) && !isRemotePreviewReady) {
166
+ onLocalPreviewError && onLocalPreviewError(_context.t0);
167
+ }
168
+ /**
169
+ * No matter the reason why the local preview failed, we break the process
170
+ * if there is no remote preview available
171
+ */
172
+
173
+
174
+ if (isRemotePreviewReady) {
175
+ _context.next = 17;
176
+ break;
177
+ }
178
+
179
+ throw _context.t0;
180
+
181
+ case 17:
182
+ if (isRemotePreviewReady) {
183
+ _context.next = 19;
184
+ break;
185
+ }
186
+
187
+ throw new _errors.MediaCardError('remote-preview-not-ready');
188
+
189
+ case 19:
190
+ _context.next = 21;
191
+ return (0, _helpers.getCardPreviewFromBackend)(mediaClient, id, imageUrlParams);
192
+
193
+ case 21:
194
+ remotePreview = _context.sent;
195
+ return _context.abrupt("return", extendAndCachePreview(id, dimensions, remotePreview, mediaBlobUrlAttrs));
196
+
197
+ case 23:
198
+ case "end":
199
+ return _context.stop();
200
+ }
201
+ }
202
+ }, _callee, null, [[4, 12]]);
203
+ }));
204
+
205
+ return function getCardPreview(_x) {
206
+ return _ref2.apply(this, arguments);
207
+ };
208
+ }();
209
+
210
+ exports.getCardPreview = getCardPreview;
211
+
212
+ var shouldResolvePreview = function shouldResolvePreview(_ref3) {
213
+ var status = _ref3.status,
214
+ fileState = _ref3.fileState,
215
+ dimensions = _ref3.dimensions,
216
+ prevDimensions = _ref3.prevDimensions,
217
+ hasCardPreview = _ref3.hasCardPreview,
218
+ isBannedLocalPreview = _ref3.isBannedLocalPreview,
219
+ featureFlags = _ref3.featureFlags;
220
+ var statusIsPreviewable = (0, _filePreviewStatus.isPreviewableStatus)(status, (0, _filePreviewStatus.extractFilePreviewStatus)(fileState, isBannedLocalPreview, featureFlags));
221
+ var dimensionsAreBigger = (0, _dimensionComparer.isBigger)(prevDimensions, dimensions);
222
+ return statusIsPreviewable && (!hasCardPreview || dimensionsAreBigger);
223
+ };
224
+
225
+ exports.shouldResolvePreview = shouldResolvePreview;
@@ -3,26 +3,18 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.getCardStatus = exports.extractCardStatusParams = void 0;
7
-
8
- var _mediaClient = require("@atlaskit/media-client");
9
-
10
- var extractCardStatusParams = function extractCardStatusParams(fileState, featureFlags) {
11
- return {
12
- // TODO: align these checks with helpers from Media Client
13
- // https://product-fabric.atlassian.net/browse/BMPT-1300
14
- isPreviewableType: 'mediaType' in fileState && !!fileState.mediaType && (0, _mediaClient.isPreviewableType)(fileState.mediaType, featureFlags),
15
- hasFilesize: 'size' in fileState && !!fileState.size,
16
- isPreviewableFileState: (0, _mediaClient.isPreviewableFileState)(fileState)
17
- };
6
+ exports.getCardStatus = exports.isFinalCardStatus = void 0;
7
+
8
+ var isFinalCardStatus = function isFinalCardStatus(status) {
9
+ return ['complete', 'error', 'failed-processing'].includes(status);
18
10
  };
19
11
 
20
- exports.extractCardStatusParams = extractCardStatusParams;
12
+ exports.isFinalCardStatus = isFinalCardStatus;
21
13
 
22
14
  var getCardStatus = function getCardStatus(fileStatus, _ref) {
23
- var isPreviewableType = _ref.isPreviewableType,
24
- hasFilesize = _ref.hasFilesize,
25
- isPreviewableFileState = _ref.isPreviewableFileState;
15
+ var hasFilesize = _ref.hasFilesize,
16
+ isPreviewable = _ref.isPreviewable,
17
+ hasPreview = _ref.hasPreview;
26
18
 
27
19
  switch (fileStatus) {
28
20
  case 'uploading':
@@ -32,24 +24,27 @@ var getCardStatus = function getCardStatus(fileStatus, _ref) {
32
24
 
33
25
  case 'processing':
34
26
  // Legacy empty files logic
35
- // isPreviewableType will most likely be false for empty files,
27
+ // isPreviewable will most likely be false for empty files,
36
28
  // therefore we need to do this cut before that check.
37
29
  // TODO: https://product-fabric.atlassian.net/browse/BMPT-1247
38
30
  if (!hasFilesize) {
39
31
  return 'processing';
40
32
  } // If we show no preview for this file
41
- // we won't show the "creating preview" message
42
- // i.e. Card is "complete".
33
+ // we won't show the "creating preview" message, i.e. Card is "complete".
43
34
 
44
35
 
45
- if (!isPreviewableType || isPreviewableFileState) {
36
+ if (!isPreviewable) {
46
37
  return 'complete';
47
38
  }
48
39
 
49
40
  return 'processing';
50
41
 
51
42
  case 'processed':
52
- return 'complete';
43
+ if (!isPreviewable || !hasPreview) {
44
+ return 'complete';
45
+ }
46
+
47
+ return 'loading-preview';
53
48
 
54
49
  default:
55
50
  return 'loading';