@atlaskit/media-card 77.6.7 → 77.7.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (37) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/dist/cjs/card/card.js +14 -6
  3. package/dist/cjs/card/cardView.js +3 -2
  4. package/dist/cjs/card/media-card-analytics-error-boundary.js +1 -1
  5. package/dist/cjs/card/v2/cardV2.js +1 -1
  6. package/dist/cjs/card/v2/fileCard.js +13 -19
  7. package/dist/cjs/dateOverrideContext.js +13 -0
  8. package/dist/cjs/index.js +8 -1
  9. package/dist/cjs/inline/loader.js +1 -1
  10. package/dist/cjs/utils/ufoExperiences.js +1 -1
  11. package/dist/es2019/card/card.js +15 -7
  12. package/dist/es2019/card/cardView.js +3 -2
  13. package/dist/es2019/card/media-card-analytics-error-boundary.js +1 -1
  14. package/dist/es2019/card/v2/cardV2.js +1 -1
  15. package/dist/es2019/card/v2/fileCard.js +5 -8
  16. package/dist/es2019/dateOverrideContext.js +8 -0
  17. package/dist/es2019/index.js +2 -1
  18. package/dist/es2019/inline/loader.js +1 -1
  19. package/dist/es2019/utils/ufoExperiences.js +1 -1
  20. package/dist/esm/card/card.js +15 -7
  21. package/dist/esm/card/cardView.js +3 -2
  22. package/dist/esm/card/media-card-analytics-error-boundary.js +1 -1
  23. package/dist/esm/card/v2/cardV2.js +1 -1
  24. package/dist/esm/card/v2/fileCard.js +15 -21
  25. package/dist/esm/dateOverrideContext.js +8 -0
  26. package/dist/esm/index.js +2 -1
  27. package/dist/esm/inline/loader.js +1 -1
  28. package/dist/esm/utils/ufoExperiences.js +1 -1
  29. package/dist/types/card/card.d.ts +3 -1
  30. package/dist/types/card/cardView.d.ts +1 -0
  31. package/dist/types/dateOverrideContext.d.ts +7 -0
  32. package/dist/types/index.d.ts +1 -0
  33. package/dist/types-ts4.5/card/card.d.ts +3 -1
  34. package/dist/types-ts4.5/card/cardView.d.ts +1 -0
  35. package/dist/types-ts4.5/dateOverrideContext.d.ts +7 -0
  36. package/dist/types-ts4.5/index.d.ts +1 -0
  37. package/package.json +3 -3
package/CHANGELOG.md CHANGED
@@ -1,5 +1,17 @@
1
1
  # @atlaskit/media-card
2
2
 
3
+ ## 77.7.1
4
+
5
+ ### Patch Changes
6
+
7
+ - [#67886](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/67886) [`18c0c2f52a54`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/18c0c2f52a54) - CXP-2880 remove isBannedLocalPreview state from fileCard
8
+
9
+ ## 77.7.0
10
+
11
+ ### Minor Changes
12
+
13
+ - [#66422](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/66422) [`e26fc35ce110`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/e26fc35ce110) - [CXP-2840] Added `DateOverrideContext` to fix inconsistent creation time in film strip (JRACLOUD-77568)
14
+
3
15
  ## 77.6.7
4
16
 
5
17
  ### Patch Changes
@@ -42,6 +42,7 @@ var _dimensionComparer = require("../utils/dimensionComparer");
42
42
  var _getMediaCardCursor = require("../utils/getMediaCardCursor");
43
43
  var _ufoExperiences = require("../utils/ufoExperiences");
44
44
  var _generateUniqueId = require("../utils/generateUniqueId");
45
+ var _dateOverrideContext = require("../dateOverrideContext");
45
46
  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); }
46
47
  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; }
47
48
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
@@ -49,7 +50,7 @@ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t =
49
50
  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); }; }
50
51
  function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
51
52
  var packageName = "@atlaskit/media-card";
52
- var packageVersion = "77.6.7";
53
+ var packageVersion = "77.7.1";
53
54
  var CardBase = exports.CardBase = /*#__PURE__*/function (_Component) {
54
55
  (0, _inherits2.default)(CardBase, _Component);
55
56
  var _super = _createSuper(CardBase);
@@ -544,7 +545,8 @@ var CardBase = exports.CardBase = /*#__PURE__*/function (_Component) {
544
545
  ssr = _this$props8.ssr,
545
546
  useInlinePlayer = _this$props8.useInlinePlayer,
546
547
  shouldOpenMediaViewer = _this$props8.shouldOpenMediaViewer,
547
- shouldHideTooltip = _this$props8.shouldHideTooltip;
548
+ shouldHideTooltip = _this$props8.shouldHideTooltip,
549
+ dateOverride = _this$props8.dateOverride;
548
550
  var mediaItemType = identifier.mediaItemType;
549
551
  var _this$state3 = _this.state,
550
552
  status = _this$state3.status,
@@ -596,7 +598,8 @@ var CardBase = exports.CardBase = /*#__PURE__*/function (_Component) {
596
598
  nativeLazyLoad: nativeLazyLoad,
597
599
  forceSyncDisplay: forceSyncDisplay,
598
600
  mediaCardCursor: mediaCardCursor,
599
- shouldHideTooltip: shouldHideTooltip
601
+ shouldHideTooltip: shouldHideTooltip,
602
+ overriddenCreationDate: dateOverride
600
603
  });
601
604
  return isLazyWithOverride ? /*#__PURE__*/_react.default.createElement(_viewportDetector.ViewportDetector, {
602
605
  cardEl: cardRef,
@@ -1015,7 +1018,9 @@ var CardBase = exports.CardBase = /*#__PURE__*/function (_Component) {
1015
1018
  }
1016
1019
  }]);
1017
1020
  return CardBase;
1018
- }(_react.Component); // We require this wrapper in order to refresh media card state when the identifier is updated
1021
+ }(_react.Component); // We require this wrapper in order
1022
+ // 1. To refresh media card state when the identifier is updated
1023
+ // 2. To allow for overriding creation date (https://product-fabric.atlassian.net/browse/CXP-2840)
1019
1024
  (0, _defineProperty2.default)(CardBase, "defaultProps", {
1020
1025
  appearance: 'auto',
1021
1026
  resizeMode: 'crop',
@@ -1024,10 +1029,13 @@ var CardBase = exports.CardBase = /*#__PURE__*/function (_Component) {
1024
1029
  // Media Feature Flag defaults are defined in @atlaskit/media-common
1025
1030
  featureFlags: {}
1026
1031
  });
1027
- var CardWithKey = function CardWithKey(props) {
1032
+ var CardWithKeyAndDateOverrideContext = function CardWithKeyAndDateOverrideContext(props) {
1028
1033
  var identifier = props.identifier;
1034
+ var dateOverrides = (0, _react.useContext)(_dateOverrideContext.DateOverrideContext);
1029
1035
  var key = (0, _mediaClient2.isFileIdentifier)(identifier) ? identifier.id : identifier.dataURI;
1036
+ var dateOverride = (0, _mediaClient2.isFileIdentifier)(identifier) ? dateOverrides === null || dateOverrides === void 0 ? void 0 : dateOverrides[identifier.id] : undefined;
1030
1037
  return /*#__PURE__*/_react.default.createElement(CardBase, (0, _extends2.default)({}, props, {
1038
+ dateOverride: dateOverride,
1031
1039
  key: key
1032
1040
  }));
1033
1041
  };
@@ -1036,6 +1044,6 @@ var Card = exports.Card = (0, _mediaCommon.withMediaAnalyticsContext)({
1036
1044
  packageName: packageName,
1037
1045
  componentName: 'mediaCard',
1038
1046
  component: 'mediaCard'
1039
- })((0, _analyticsNext.withAnalyticsEvents)()((0, _reactIntlNext.injectIntl)(CardWithKey, {
1047
+ })((0, _analyticsNext.withAnalyticsEvents)()((0, _reactIntlNext.injectIntl)(CardWithKeyAndDateOverrideContext, {
1040
1048
  enforceContext: false
1041
1049
  })));
@@ -291,13 +291,14 @@ var CardViewBase = exports.CardViewBase = /*#__PURE__*/function (_React$Componen
291
291
  var _this$props5 = this.props,
292
292
  metadata = _this$props5.metadata,
293
293
  titleBoxBgColor = _this$props5.titleBoxBgColor,
294
- titleBoxIcon = _this$props5.titleBoxIcon;
294
+ titleBoxIcon = _this$props5.titleBoxIcon,
295
+ overriddenCreationDate = _this$props5.overriddenCreationDate;
295
296
  var _ref6 = metadata || {},
296
297
  name = _ref6.name,
297
298
  createdAt = _ref6.createdAt;
298
299
  return !!name && (0, _react.jsx)(_titleBox.TitleBox, {
299
300
  name: name,
300
- createdAt: createdAt,
301
+ createdAt: overriddenCreationDate !== null && overriddenCreationDate !== void 0 ? overriddenCreationDate : createdAt,
301
302
  breakpoint: this.breakpoint,
302
303
  titleBoxIcon: titleBoxIcon,
303
304
  titleBoxBgColor: titleBoxBgColor
@@ -90,7 +90,7 @@ var WrappedMediaCardAnalyticsErrorBoundary = /*#__PURE__*/function (_React$Compo
90
90
  }(_react.default.Component);
91
91
  (0, _defineProperty2.default)(WrappedMediaCardAnalyticsErrorBoundary, "displayName", 'MediaCardAnalyticsErrorBoundary');
92
92
  var packageName = "@atlaskit/media-card";
93
- var packageVersion = "77.6.7";
93
+ var packageVersion = "77.7.1";
94
94
  var MediaCardAnalyticsErrorBoundary = (0, _mediaCommon.withMediaAnalyticsContext)({
95
95
  packageVersion: packageVersion,
96
96
  packageName: packageName,
@@ -16,7 +16,7 @@ var _externalImageCard = require("./externalImageCard");
16
16
  var _fileCard = require("./fileCard");
17
17
  var _excluded = ["identifier"];
18
18
  var packageName = "@atlaskit/media-card";
19
- var packageVersion = "77.6.7";
19
+ var packageVersion = "77.7.1";
20
20
  var CardV2Base = exports.CardV2Base = function CardV2Base(_ref) {
21
21
  var identifier = _ref.identifier,
22
22
  otherProps = (0, _objectWithoutProperties2.default)(_ref, _excluded);
@@ -26,7 +26,6 @@ var _metadata = require("../../utils/metadata");
26
26
  var _ufoExperiences = require("../../utils/ufoExperiences");
27
27
  var _useCurrentValueRef = require("../../utils/useCurrentValueRef");
28
28
  var _usePrevious = require("../../utils/usePrevious");
29
- var _videoIsPlayable = require("../../utils/videoIsPlayable");
30
29
  var _viewportDetector = require("../../utils/viewportDetector");
31
30
  var _cardDimensions = require("../../utils/cardDimensions");
32
31
  var _cardAnalytics = require("../cardAnalytics");
@@ -150,12 +149,8 @@ var FileCard = exports.FileCard = function FileCard(_ref) {
150
149
  // CXP-2723 TODO: remove isBannedLocalPreview
151
150
  var _useState11 = (0, _react.useState)(false),
152
151
  _useState12 = (0, _slicedToArray2.default)(_useState11, 2),
153
- isBannedLocalPreview = _useState12[0],
154
- setIsBannedLocalPreview = _useState12[1];
155
- var _useState13 = (0, _react.useState)(false),
156
- _useState14 = (0, _slicedToArray2.default)(_useState13, 2),
157
- previewDidRender = _useState14[0],
158
- setPreviewDidRender = _useState14[1];
152
+ previewDidRender = _useState12[0],
153
+ setPreviewDidRender = _useState12[1];
159
154
 
160
155
  // CXP-2723 TODO: Do we have tests to validate the use of the below attributes
161
156
  var mediaBlobUrlAttrs = (0, _react.useMemo)(function () {
@@ -193,18 +188,18 @@ var FileCard = exports.FileCard = function FileCard(_ref) {
193
188
  onImageErrorBase = _useFilePreview.onImageError,
194
189
  onImageLoadBase = _useFilePreview.onImageLoad,
195
190
  getScriptProps = _useFilePreview.getScriptProps;
196
- var _useState15 = (0, _react.useState)(),
197
- _useState16 = (0, _slicedToArray2.default)(_useState15, 2),
198
- error = _useState16[0],
199
- setError = _useState16[1];
191
+ var _useState13 = (0, _react.useState)(),
192
+ _useState14 = (0, _slicedToArray2.default)(_useState13, 2),
193
+ error = _useState14[0],
194
+ setError = _useState14[1];
200
195
 
201
196
  // CXP-2723 TODO: TEMPORARY VARIABLES
202
197
  var finalError = error || previewError;
203
198
  var finalStatus = finalError ? 'error' : status;
204
- var _useState17 = (0, _react.useState)(null),
205
- _useState18 = (0, _slicedToArray2.default)(_useState17, 2),
206
- mediaViewerSelectedItem = _useState18[0],
207
- setMediaViewerSelectedItem = _useState18[1];
199
+ var _useState15 = (0, _react.useState)(null),
200
+ _useState16 = (0, _slicedToArray2.default)(_useState15, 2),
201
+ mediaViewerSelectedItem = _useState16[0],
202
+ setMediaViewerSelectedItem = _useState16[1];
208
203
  var uploadProgressRef = (0, _react.useRef)();
209
204
  var metadata = (0, _react.useMemo)(function () {
210
205
  var getProcessingStatusFromFileState = function getProcessingStatusFromFileState(status) {
@@ -407,7 +402,6 @@ var FileCard = exports.FileCard = function FileCard(_ref) {
407
402
  ['loading-preview', 'processing'].includes(finalStatus)) {
408
403
  setStatus('complete');
409
404
  // TODO MEX-788: add test for "do not remove the card preview when unsubscribing".
410
- setIsBannedLocalPreview(false);
411
405
  }
412
406
  }, [previewDidRender, finalStatus]);
413
407
 
@@ -419,7 +413,7 @@ var FileCard = exports.FileCard = function FileCard(_ref) {
419
413
  var isVideo = fileAttributes.fileMediatype === 'video';
420
414
  var _getFileDetails2 = (0, _metadata.getFileDetails)(identifier, fileStateValue),
421
415
  mimeType = _getFileDetails2.mimeType;
422
- var isVideoPlayable = (0, _videoIsPlayable.videoIsPlayable)(isBannedLocalPreview, fileStateValue, mimeType);
416
+ var isVideoPlayable = mimeType && (0, _mediaCommon.isVideoMimeTypeSupportedByBrowser)(mimeType) || fileStateValue && (0, _mediaClient.isProcessedFileState)(fileStateValue);
423
417
  if (
424
418
  /**
425
419
  * We need to check that the card is visible before switching to inline player
@@ -429,7 +423,7 @@ var FileCard = exports.FileCard = function FileCard(_ref) {
429
423
  isCardVisible && isVideo && !isPlayingFile && disableOverlay && useInlinePlayer && isVideoPlayable && finalStatus !== 'error') {
430
424
  setIsPlayingFile(true);
431
425
  }
432
- }, [isCardVisible, disableOverlay, fileAttributes.fileMediatype, fileStateValue, identifier, isBannedLocalPreview, isPlayingFile, finalStatus, useInlinePlayer]);
426
+ }, [isCardVisible, disableOverlay, fileAttributes.fileMediatype, fileStateValue, identifier, isPlayingFile, finalStatus, useInlinePlayer]);
433
427
 
434
428
  //----------------------------------------------------------------//
435
429
  //----------------- fireScreenEvent ------------------------------//
@@ -469,7 +463,7 @@ var FileCard = exports.FileCard = function FileCard(_ref) {
469
463
  var isPreviewable = !!mediaType && ['audio', 'video', 'image', 'doc'].indexOf(mediaType) > -1;
470
464
  var isPreviewableFileState = !!fileState.preview;
471
465
  var isSupportedLocalPreview = mediaType === 'image' || mediaType === 'video';
472
- var hasLocalPreview = !isBannedLocalPreview && isPreviewableFileState &&
466
+ var hasLocalPreview = isPreviewableFileState &&
473
467
  // CXP-2723 TODO: isPreviewableFileState is most likely redundant
474
468
  isSupportedLocalPreview && !!fileState.mimeType && (0, _mediaCommon.isMimeTypeSupportedByBrowser)(fileState.mimeType);
475
469
  var hasRemotePreview = (0, _mediaClient.isImageRepresentationReady)(fileState);
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.DateOverrideContext = void 0;
7
+ var _react = require("react");
8
+ /**
9
+ * Provide capacity to override creation date
10
+ * `DateOverrideContext` is a stopgap for a specific bug (https://product-fabric.atlassian.net/browse/CXP-2840)
11
+ * This is a temporal solution, please consult before usage
12
+ */
13
+ var DateOverrideContext = exports.DateOverrideContext = /*#__PURE__*/(0, _react.createContext)(undefined);
package/dist/cjs/index.js CHANGED
@@ -21,6 +21,12 @@ Object.defineProperty(exports, "CardLoading", {
21
21
  return _cardLoading.CardLoading;
22
22
  }
23
23
  });
24
+ Object.defineProperty(exports, "DateOverrideContext", {
25
+ enumerable: true,
26
+ get: function get() {
27
+ return _dateOverrideContext.DateOverrideContext;
28
+ }
29
+ });
24
30
  Object.defineProperty(exports, "MediaInlineCard", {
25
31
  enumerable: true,
26
32
  get: function get() {
@@ -58,4 +64,5 @@ var _cardError = require("./utils/lightCards/cardError");
58
64
  var _cardDimensions = require("./utils/cardDimensions");
59
65
  var _classnames = require("./card/classnames");
60
66
  var _inlinePlayerWrapperStyles = require("./card/inlinePlayerWrapperStyles");
61
- var _cardConstants = require("./card/cardConstants");
67
+ var _cardConstants = require("./card/cardConstants");
68
+ var _dateOverrideContext = require("./dateOverrideContext");
@@ -119,7 +119,7 @@ var MediaInlineCardLoader = exports.default = /*#__PURE__*/function (_React$Pure
119
119
  ErrorBoundary = _this$state.ErrorBoundary;
120
120
  var analyticsContext = {
121
121
  packageVersion: "@atlaskit/media-card",
122
- packageName: "77.6.7",
122
+ packageName: "77.7.1",
123
123
  componentName: 'mediaInlineCard',
124
124
  component: 'mediaInlineCard'
125
125
  };
@@ -14,7 +14,7 @@ var _mediaClient = require("@atlaskit/media-client");
14
14
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
15
15
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
16
16
  var packageName = "@atlaskit/media-card";
17
- var packageVersion = "77.6.7";
17
+ var packageVersion = "77.7.1";
18
18
  var concurrentExperience;
19
19
  var getExperience = function getExperience(id) {
20
20
  if (!concurrentExperience) {
@@ -1,6 +1,6 @@
1
1
  import _extends from "@babel/runtime/helpers/extends";
2
2
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
3
- import React, { Component, Suspense } from 'react';
3
+ import React, { Component, Suspense, useContext } from 'react';
4
4
  import ReactDOM from 'react-dom';
5
5
  import { withAnalyticsEvents } from '@atlaskit/analytics-next';
6
6
  import { withMediaAnalyticsContext } from '@atlaskit/media-common';
@@ -26,8 +26,9 @@ import { isBigger } from '../utils/dimensionComparer';
26
26
  import { getMediaCardCursor } from '../utils/getMediaCardCursor';
27
27
  import { completeUfoExperience, startUfoExperience, abortUfoExperience } from '../utils/ufoExperiences';
28
28
  import { generateUniqueId } from '../utils/generateUniqueId';
29
+ import { DateOverrideContext } from '../dateOverrideContext';
29
30
  const packageName = "@atlaskit/media-card";
30
- const packageVersion = "77.6.7";
31
+ const packageVersion = "77.7.1";
31
32
  export class CardBase extends Component {
32
33
  constructor(props) {
33
34
  super(props);
@@ -497,7 +498,8 @@ export class CardBase extends Component {
497
498
  ssr,
498
499
  useInlinePlayer,
499
500
  shouldOpenMediaViewer,
500
- shouldHideTooltip
501
+ shouldHideTooltip,
502
+ dateOverride
501
503
  } = this.props;
502
504
  const {
503
505
  mediaItemType
@@ -555,7 +557,8 @@ export class CardBase extends Component {
555
557
  nativeLazyLoad: nativeLazyLoad,
556
558
  forceSyncDisplay: forceSyncDisplay,
557
559
  mediaCardCursor: mediaCardCursor,
558
- shouldHideTooltip: shouldHideTooltip
560
+ shouldHideTooltip: shouldHideTooltip,
561
+ overriddenCreationDate: dateOverride
559
562
  });
560
563
  return isLazyWithOverride ? /*#__PURE__*/React.createElement(ViewportDetector, {
561
564
  cardEl: cardRef,
@@ -989,7 +992,9 @@ export class CardBase extends Component {
989
992
  }
990
993
  }
991
994
 
992
- // We require this wrapper in order to refresh media card state when the identifier is updated
995
+ // We require this wrapper in order
996
+ // 1. To refresh media card state when the identifier is updated
997
+ // 2. To allow for overriding creation date (https://product-fabric.atlassian.net/browse/CXP-2840)
993
998
  _defineProperty(CardBase, "defaultProps", {
994
999
  appearance: 'auto',
995
1000
  resizeMode: 'crop',
@@ -998,12 +1003,15 @@ _defineProperty(CardBase, "defaultProps", {
998
1003
  // Media Feature Flag defaults are defined in @atlaskit/media-common
999
1004
  featureFlags: {}
1000
1005
  });
1001
- const CardWithKey = props => {
1006
+ const CardWithKeyAndDateOverrideContext = props => {
1002
1007
  const {
1003
1008
  identifier
1004
1009
  } = props;
1010
+ const dateOverrides = useContext(DateOverrideContext);
1005
1011
  const key = isFileIdentifier(identifier) ? identifier.id : identifier.dataURI;
1012
+ const dateOverride = isFileIdentifier(identifier) ? dateOverrides === null || dateOverrides === void 0 ? void 0 : dateOverrides[identifier.id] : undefined;
1006
1013
  return /*#__PURE__*/React.createElement(CardBase, _extends({}, props, {
1014
+ dateOverride: dateOverride,
1007
1015
  key: key
1008
1016
  }));
1009
1017
  };
@@ -1012,6 +1020,6 @@ export const Card = withMediaAnalyticsContext({
1012
1020
  packageName,
1013
1021
  componentName: 'mediaCard',
1014
1022
  component: 'mediaCard'
1015
- })(withAnalyticsEvents()(injectIntl(CardWithKey, {
1023
+ })(withAnalyticsEvents()(injectIntl(CardWithKeyAndDateOverrideContext, {
1016
1024
  enforceContext: false
1017
1025
  })));
@@ -279,7 +279,8 @@ export class CardViewBase extends React.Component {
279
279
  const {
280
280
  metadata,
281
281
  titleBoxBgColor,
282
- titleBoxIcon
282
+ titleBoxIcon,
283
+ overriddenCreationDate
283
284
  } = this.props;
284
285
  const {
285
286
  name,
@@ -287,7 +288,7 @@ export class CardViewBase extends React.Component {
287
288
  } = metadata || {};
288
289
  return !!name && jsx(TitleBox, {
289
290
  name: name,
290
- createdAt: createdAt,
291
+ createdAt: overriddenCreationDate !== null && overriddenCreationDate !== void 0 ? overriddenCreationDate : createdAt,
291
292
  breakpoint: this.breakpoint,
292
293
  titleBoxIcon: titleBoxIcon,
293
294
  titleBoxBgColor: titleBoxBgColor
@@ -66,7 +66,7 @@ class WrappedMediaCardAnalyticsErrorBoundary extends React.Component {
66
66
  }
67
67
  _defineProperty(WrappedMediaCardAnalyticsErrorBoundary, "displayName", 'MediaCardAnalyticsErrorBoundary');
68
68
  const packageName = "@atlaskit/media-card";
69
- const packageVersion = "77.6.7";
69
+ const packageVersion = "77.7.1";
70
70
  const MediaCardAnalyticsErrorBoundary = withMediaAnalyticsContext({
71
71
  packageVersion,
72
72
  packageName,
@@ -7,7 +7,7 @@ import { IntlProvider, injectIntl } from 'react-intl-next';
7
7
  import { ExternalImageCard } from './externalImageCard';
8
8
  import { FileCard } from './fileCard';
9
9
  const packageName = "@atlaskit/media-card";
10
- const packageVersion = "77.6.7";
10
+ const packageVersion = "77.7.1";
11
11
  export const CardV2Base = ({
12
12
  identifier,
13
13
  ...otherProps
@@ -1,8 +1,8 @@
1
1
  import { getBooleanFF } from '@atlaskit/platform-feature-flags';
2
2
  import DownloadIcon from '@atlaskit/icon/glyph/download';
3
- import { globalMediaEventEmitter, isImageRepresentationReady, RECENTS_COLLECTION, imageResizeModeToFileImageMode } from '@atlaskit/media-client';
3
+ import { globalMediaEventEmitter, isImageRepresentationReady, RECENTS_COLLECTION, imageResizeModeToFileImageMode, isProcessedFileState } from '@atlaskit/media-client';
4
4
  import { MediaFileStateError, useFileState, useMediaClient } from '@atlaskit/media-client-react';
5
- import { getRandomHex, isMimeTypeSupportedByBrowser } from '@atlaskit/media-common';
5
+ import { getRandomHex, isMimeTypeSupportedByBrowser, isVideoMimeTypeSupportedByBrowser } from '@atlaskit/media-common';
6
6
  import { MediaViewer } from '@atlaskit/media-viewer';
7
7
  import React, { Suspense, useEffect, useMemo, useRef, useState } from 'react';
8
8
  import ReactDOM from 'react-dom';
@@ -15,7 +15,6 @@ import { getFileDetails } from '../../utils/metadata';
15
15
  import { abortUfoExperience, completeUfoExperience, startUfoExperience } from '../../utils/ufoExperiences';
16
16
  import { useCurrentValueRef } from '../../utils/useCurrentValueRef';
17
17
  import { usePrevious } from '../../utils/usePrevious';
18
- import { videoIsPlayable } from '../../utils/videoIsPlayable';
19
18
  import { ViewportDetector } from '../../utils/viewportDetector';
20
19
  import { getDefaultCardDimensions } from '../../utils/cardDimensions';
21
20
  import { fireCommencedEvent, fireCopiedEvent, fireNonCriticalErrorEvent, fireOperationalEvent, fireScreenEvent } from '../cardAnalytics';
@@ -107,7 +106,6 @@ export const FileCard = ({
107
106
  const [shouldAutoplay, setShouldAutoplay] = useState(false);
108
107
 
109
108
  // CXP-2723 TODO: remove isBannedLocalPreview
110
- const [isBannedLocalPreview, setIsBannedLocalPreview] = useState(false);
111
109
  const [previewDidRender, setPreviewDidRender] = useState(false);
112
110
 
113
111
  // CXP-2723 TODO: Do we have tests to validate the use of the below attributes
@@ -356,7 +354,6 @@ export const FileCard = ({
356
354
  ['loading-preview', 'processing'].includes(finalStatus)) {
357
355
  setStatus('complete');
358
356
  // TODO MEX-788: add test for "do not remove the card preview when unsubscribing".
359
- setIsBannedLocalPreview(false);
360
357
  }
361
358
  }, [previewDidRender, finalStatus]);
362
359
 
@@ -369,7 +366,7 @@ export const FileCard = ({
369
366
  const {
370
367
  mimeType
371
368
  } = getFileDetails(identifier, fileStateValue);
372
- const isVideoPlayable = videoIsPlayable(isBannedLocalPreview, fileStateValue, mimeType);
369
+ const isVideoPlayable = mimeType && isVideoMimeTypeSupportedByBrowser(mimeType) || fileStateValue && isProcessedFileState(fileStateValue);
373
370
  if (
374
371
  /**
375
372
  * We need to check that the card is visible before switching to inline player
@@ -379,7 +376,7 @@ export const FileCard = ({
379
376
  isCardVisible && isVideo && !isPlayingFile && disableOverlay && useInlinePlayer && isVideoPlayable && finalStatus !== 'error') {
380
377
  setIsPlayingFile(true);
381
378
  }
382
- }, [isCardVisible, disableOverlay, fileAttributes.fileMediatype, fileStateValue, identifier, isBannedLocalPreview, isPlayingFile, finalStatus, useInlinePlayer]);
379
+ }, [isCardVisible, disableOverlay, fileAttributes.fileMediatype, fileStateValue, identifier, isPlayingFile, finalStatus, useInlinePlayer]);
383
380
 
384
381
  //----------------------------------------------------------------//
385
382
  //----------------- fireScreenEvent ------------------------------//
@@ -419,7 +416,7 @@ export const FileCard = ({
419
416
  const isPreviewable = !!mediaType && ['audio', 'video', 'image', 'doc'].indexOf(mediaType) > -1;
420
417
  const isPreviewableFileState = !!fileState.preview;
421
418
  const isSupportedLocalPreview = mediaType === 'image' || mediaType === 'video';
422
- const hasLocalPreview = !isBannedLocalPreview && isPreviewableFileState &&
419
+ const hasLocalPreview = isPreviewableFileState &&
423
420
  // CXP-2723 TODO: isPreviewableFileState is most likely redundant
424
421
  isSupportedLocalPreview && !!fileState.mimeType && isMimeTypeSupportedByBrowser(fileState.mimeType);
425
422
  const hasRemotePreview = isImageRepresentationReady(fileState);
@@ -0,0 +1,8 @@
1
+ import { createContext } from 'react';
2
+
3
+ /**
4
+ * Provide capacity to override creation date
5
+ * `DateOverrideContext` is a stopgap for a specific bug (https://product-fabric.atlassian.net/browse/CXP-2840)
6
+ * This is a temporal solution, please consult before usage
7
+ */
8
+ export const DateOverrideContext = /*#__PURE__*/createContext(undefined);
@@ -10,4 +10,5 @@ export { CardError } from './utils/lightCards/cardError';
10
10
  export { defaultImageCardDimensions } from './utils/cardDimensions';
11
11
  export { fileCardImageViewSelector } from './card/classnames';
12
12
  export { inlinePlayerClassName } from './card/inlinePlayerWrapperStyles';
13
- export { newFileExperienceClassName } from './card/cardConstants';
13
+ export { newFileExperienceClassName } from './card/cardConstants';
14
+ export { DateOverrideContext } from './dateOverrideContext';
@@ -37,7 +37,7 @@ export default class MediaInlineCardLoader extends React.PureComponent {
37
37
  } = this.state;
38
38
  const analyticsContext = {
39
39
  packageVersion: "@atlaskit/media-card",
40
- packageName: "77.6.7",
40
+ packageName: "77.7.1",
41
41
  componentName: 'mediaInlineCard',
42
42
  component: 'mediaInlineCard'
43
43
  };
@@ -4,7 +4,7 @@ import { extractErrorInfo, getRenderErrorRequestMetadata } from './analytics';
4
4
  import { MediaCardError } from '../errors';
5
5
  import { getMediaEnvironment, getMediaRegion } from '@atlaskit/media-client';
6
6
  const packageName = "@atlaskit/media-card";
7
- const packageVersion = "77.6.7";
7
+ const packageVersion = "77.7.1";
8
8
  let concurrentExperience;
9
9
  const getExperience = id => {
10
10
  if (!concurrentExperience) {
@@ -13,7 +13,7 @@ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbol
13
13
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
14
14
  function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
15
15
  function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
16
- import React, { Component, Suspense } from 'react';
16
+ import React, { Component, Suspense, useContext } from 'react';
17
17
  import ReactDOM from 'react-dom';
18
18
  import { withAnalyticsEvents } from '@atlaskit/analytics-next';
19
19
  import { withMediaAnalyticsContext } from '@atlaskit/media-common';
@@ -39,8 +39,9 @@ import { isBigger } from '../utils/dimensionComparer';
39
39
  import { getMediaCardCursor } from '../utils/getMediaCardCursor';
40
40
  import { completeUfoExperience, startUfoExperience, abortUfoExperience } from '../utils/ufoExperiences';
41
41
  import { generateUniqueId } from '../utils/generateUniqueId';
42
+ import { DateOverrideContext } from '../dateOverrideContext';
42
43
  var packageName = "@atlaskit/media-card";
43
- var packageVersion = "77.6.7";
44
+ var packageVersion = "77.7.1";
44
45
  export var CardBase = /*#__PURE__*/function (_Component) {
45
46
  _inherits(CardBase, _Component);
46
47
  var _super = _createSuper(CardBase);
@@ -535,7 +536,8 @@ export var CardBase = /*#__PURE__*/function (_Component) {
535
536
  ssr = _this$props8.ssr,
536
537
  useInlinePlayer = _this$props8.useInlinePlayer,
537
538
  shouldOpenMediaViewer = _this$props8.shouldOpenMediaViewer,
538
- shouldHideTooltip = _this$props8.shouldHideTooltip;
539
+ shouldHideTooltip = _this$props8.shouldHideTooltip,
540
+ dateOverride = _this$props8.dateOverride;
539
541
  var mediaItemType = identifier.mediaItemType;
540
542
  var _this$state3 = _this.state,
541
543
  status = _this$state3.status,
@@ -587,7 +589,8 @@ export var CardBase = /*#__PURE__*/function (_Component) {
587
589
  nativeLazyLoad: nativeLazyLoad,
588
590
  forceSyncDisplay: forceSyncDisplay,
589
591
  mediaCardCursor: mediaCardCursor,
590
- shouldHideTooltip: shouldHideTooltip
592
+ shouldHideTooltip: shouldHideTooltip,
593
+ overriddenCreationDate: dateOverride
591
594
  });
592
595
  return isLazyWithOverride ? /*#__PURE__*/React.createElement(ViewportDetector, {
593
596
  cardEl: cardRef,
@@ -1008,7 +1011,9 @@ export var CardBase = /*#__PURE__*/function (_Component) {
1008
1011
  return CardBase;
1009
1012
  }(Component);
1010
1013
 
1011
- // We require this wrapper in order to refresh media card state when the identifier is updated
1014
+ // We require this wrapper in order
1015
+ // 1. To refresh media card state when the identifier is updated
1016
+ // 2. To allow for overriding creation date (https://product-fabric.atlassian.net/browse/CXP-2840)
1012
1017
  _defineProperty(CardBase, "defaultProps", {
1013
1018
  appearance: 'auto',
1014
1019
  resizeMode: 'crop',
@@ -1017,10 +1022,13 @@ _defineProperty(CardBase, "defaultProps", {
1017
1022
  // Media Feature Flag defaults are defined in @atlaskit/media-common
1018
1023
  featureFlags: {}
1019
1024
  });
1020
- var CardWithKey = function CardWithKey(props) {
1025
+ var CardWithKeyAndDateOverrideContext = function CardWithKeyAndDateOverrideContext(props) {
1021
1026
  var identifier = props.identifier;
1027
+ var dateOverrides = useContext(DateOverrideContext);
1022
1028
  var key = isFileIdentifier(identifier) ? identifier.id : identifier.dataURI;
1029
+ var dateOverride = isFileIdentifier(identifier) ? dateOverrides === null || dateOverrides === void 0 ? void 0 : dateOverrides[identifier.id] : undefined;
1023
1030
  return /*#__PURE__*/React.createElement(CardBase, _extends({}, props, {
1031
+ dateOverride: dateOverride,
1024
1032
  key: key
1025
1033
  }));
1026
1034
  };
@@ -1029,6 +1037,6 @@ export var Card = withMediaAnalyticsContext({
1029
1037
  packageName: packageName,
1030
1038
  componentName: 'mediaCard',
1031
1039
  component: 'mediaCard'
1032
- })(withAnalyticsEvents()(injectIntl(CardWithKey, {
1040
+ })(withAnalyticsEvents()(injectIntl(CardWithKeyAndDateOverrideContext, {
1033
1041
  enforceContext: false
1034
1042
  })));
@@ -285,13 +285,14 @@ export var CardViewBase = /*#__PURE__*/function (_React$Component) {
285
285
  var _this$props5 = this.props,
286
286
  metadata = _this$props5.metadata,
287
287
  titleBoxBgColor = _this$props5.titleBoxBgColor,
288
- titleBoxIcon = _this$props5.titleBoxIcon;
288
+ titleBoxIcon = _this$props5.titleBoxIcon,
289
+ overriddenCreationDate = _this$props5.overriddenCreationDate;
289
290
  var _ref6 = metadata || {},
290
291
  name = _ref6.name,
291
292
  createdAt = _ref6.createdAt;
292
293
  return !!name && jsx(TitleBox, {
293
294
  name: name,
294
- createdAt: createdAt,
295
+ createdAt: overriddenCreationDate !== null && overriddenCreationDate !== void 0 ? overriddenCreationDate : createdAt,
295
296
  breakpoint: this.breakpoint,
296
297
  titleBoxIcon: titleBoxIcon,
297
298
  titleBoxBgColor: titleBoxBgColor
@@ -83,7 +83,7 @@ var WrappedMediaCardAnalyticsErrorBoundary = /*#__PURE__*/function (_React$Compo
83
83
  }(React.Component);
84
84
  _defineProperty(WrappedMediaCardAnalyticsErrorBoundary, "displayName", 'MediaCardAnalyticsErrorBoundary');
85
85
  var packageName = "@atlaskit/media-card";
86
- var packageVersion = "77.6.7";
86
+ var packageVersion = "77.7.1";
87
87
  var MediaCardAnalyticsErrorBoundary = withMediaAnalyticsContext({
88
88
  packageVersion: packageVersion,
89
89
  packageName: packageName,
@@ -9,7 +9,7 @@ import { IntlProvider, injectIntl } from 'react-intl-next';
9
9
  import { ExternalImageCard } from './externalImageCard';
10
10
  import { FileCard } from './fileCard';
11
11
  var packageName = "@atlaskit/media-card";
12
- var packageVersion = "77.6.7";
12
+ var packageVersion = "77.7.1";
13
13
  export var CardV2Base = function CardV2Base(_ref) {
14
14
  var identifier = _ref.identifier,
15
15
  otherProps = _objectWithoutProperties(_ref, _excluded);
@@ -5,9 +5,9 @@ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbol
5
5
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
6
6
  import { getBooleanFF } from '@atlaskit/platform-feature-flags';
7
7
  import DownloadIcon from '@atlaskit/icon/glyph/download';
8
- import { globalMediaEventEmitter, isImageRepresentationReady, RECENTS_COLLECTION, imageResizeModeToFileImageMode } from '@atlaskit/media-client';
8
+ import { globalMediaEventEmitter, isImageRepresentationReady, RECENTS_COLLECTION, imageResizeModeToFileImageMode, isProcessedFileState } from '@atlaskit/media-client';
9
9
  import { MediaFileStateError, useFileState, useMediaClient } from '@atlaskit/media-client-react';
10
- import { getRandomHex, isMimeTypeSupportedByBrowser } from '@atlaskit/media-common';
10
+ import { getRandomHex, isMimeTypeSupportedByBrowser, isVideoMimeTypeSupportedByBrowser } from '@atlaskit/media-common';
11
11
  import { MediaViewer } from '@atlaskit/media-viewer';
12
12
  import React, { Suspense, useEffect, useMemo, useRef, useState } from 'react';
13
13
  import ReactDOM from 'react-dom';
@@ -20,7 +20,6 @@ import { getFileDetails } from '../../utils/metadata';
20
20
  import { abortUfoExperience, completeUfoExperience, startUfoExperience } from '../../utils/ufoExperiences';
21
21
  import { useCurrentValueRef } from '../../utils/useCurrentValueRef';
22
22
  import { usePrevious } from '../../utils/usePrevious';
23
- import { videoIsPlayable } from '../../utils/videoIsPlayable';
24
23
  import { ViewportDetector } from '../../utils/viewportDetector';
25
24
  import { getDefaultCardDimensions } from '../../utils/cardDimensions';
26
25
  import { fireCommencedEvent, fireCopiedEvent, fireNonCriticalErrorEvent, fireOperationalEvent, fireScreenEvent } from '../cardAnalytics';
@@ -140,12 +139,8 @@ export var FileCard = function FileCard(_ref) {
140
139
  // CXP-2723 TODO: remove isBannedLocalPreview
141
140
  var _useState11 = useState(false),
142
141
  _useState12 = _slicedToArray(_useState11, 2),
143
- isBannedLocalPreview = _useState12[0],
144
- setIsBannedLocalPreview = _useState12[1];
145
- var _useState13 = useState(false),
146
- _useState14 = _slicedToArray(_useState13, 2),
147
- previewDidRender = _useState14[0],
148
- setPreviewDidRender = _useState14[1];
142
+ previewDidRender = _useState12[0],
143
+ setPreviewDidRender = _useState12[1];
149
144
 
150
145
  // CXP-2723 TODO: Do we have tests to validate the use of the below attributes
151
146
  var mediaBlobUrlAttrs = useMemo(function () {
@@ -183,18 +178,18 @@ export var FileCard = function FileCard(_ref) {
183
178
  onImageErrorBase = _useFilePreview.onImageError,
184
179
  onImageLoadBase = _useFilePreview.onImageLoad,
185
180
  getScriptProps = _useFilePreview.getScriptProps;
186
- var _useState15 = useState(),
187
- _useState16 = _slicedToArray(_useState15, 2),
188
- error = _useState16[0],
189
- setError = _useState16[1];
181
+ var _useState13 = useState(),
182
+ _useState14 = _slicedToArray(_useState13, 2),
183
+ error = _useState14[0],
184
+ setError = _useState14[1];
190
185
 
191
186
  // CXP-2723 TODO: TEMPORARY VARIABLES
192
187
  var finalError = error || previewError;
193
188
  var finalStatus = finalError ? 'error' : status;
194
- var _useState17 = useState(null),
195
- _useState18 = _slicedToArray(_useState17, 2),
196
- mediaViewerSelectedItem = _useState18[0],
197
- setMediaViewerSelectedItem = _useState18[1];
189
+ var _useState15 = useState(null),
190
+ _useState16 = _slicedToArray(_useState15, 2),
191
+ mediaViewerSelectedItem = _useState16[0],
192
+ setMediaViewerSelectedItem = _useState16[1];
198
193
  var uploadProgressRef = useRef();
199
194
  var metadata = useMemo(function () {
200
195
  var getProcessingStatusFromFileState = function getProcessingStatusFromFileState(status) {
@@ -397,7 +392,6 @@ export var FileCard = function FileCard(_ref) {
397
392
  ['loading-preview', 'processing'].includes(finalStatus)) {
398
393
  setStatus('complete');
399
394
  // TODO MEX-788: add test for "do not remove the card preview when unsubscribing".
400
- setIsBannedLocalPreview(false);
401
395
  }
402
396
  }, [previewDidRender, finalStatus]);
403
397
 
@@ -409,7 +403,7 @@ export var FileCard = function FileCard(_ref) {
409
403
  var isVideo = fileAttributes.fileMediatype === 'video';
410
404
  var _getFileDetails2 = getFileDetails(identifier, fileStateValue),
411
405
  mimeType = _getFileDetails2.mimeType;
412
- var isVideoPlayable = videoIsPlayable(isBannedLocalPreview, fileStateValue, mimeType);
406
+ var isVideoPlayable = mimeType && isVideoMimeTypeSupportedByBrowser(mimeType) || fileStateValue && isProcessedFileState(fileStateValue);
413
407
  if (
414
408
  /**
415
409
  * We need to check that the card is visible before switching to inline player
@@ -419,7 +413,7 @@ export var FileCard = function FileCard(_ref) {
419
413
  isCardVisible && isVideo && !isPlayingFile && disableOverlay && useInlinePlayer && isVideoPlayable && finalStatus !== 'error') {
420
414
  setIsPlayingFile(true);
421
415
  }
422
- }, [isCardVisible, disableOverlay, fileAttributes.fileMediatype, fileStateValue, identifier, isBannedLocalPreview, isPlayingFile, finalStatus, useInlinePlayer]);
416
+ }, [isCardVisible, disableOverlay, fileAttributes.fileMediatype, fileStateValue, identifier, isPlayingFile, finalStatus, useInlinePlayer]);
423
417
 
424
418
  //----------------------------------------------------------------//
425
419
  //----------------- fireScreenEvent ------------------------------//
@@ -459,7 +453,7 @@ export var FileCard = function FileCard(_ref) {
459
453
  var isPreviewable = !!mediaType && ['audio', 'video', 'image', 'doc'].indexOf(mediaType) > -1;
460
454
  var isPreviewableFileState = !!fileState.preview;
461
455
  var isSupportedLocalPreview = mediaType === 'image' || mediaType === 'video';
462
- var hasLocalPreview = !isBannedLocalPreview && isPreviewableFileState &&
456
+ var hasLocalPreview = isPreviewableFileState &&
463
457
  // CXP-2723 TODO: isPreviewableFileState is most likely redundant
464
458
  isSupportedLocalPreview && !!fileState.mimeType && isMimeTypeSupportedByBrowser(fileState.mimeType);
465
459
  var hasRemotePreview = isImageRepresentationReady(fileState);
@@ -0,0 +1,8 @@
1
+ import { createContext } from 'react';
2
+
3
+ /**
4
+ * Provide capacity to override creation date
5
+ * `DateOverrideContext` is a stopgap for a specific bug (https://product-fabric.atlassian.net/browse/CXP-2840)
6
+ * This is a temporal solution, please consult before usage
7
+ */
8
+ export var DateOverrideContext = /*#__PURE__*/createContext(undefined);
package/dist/esm/index.js CHANGED
@@ -10,4 +10,5 @@ export { CardError } from './utils/lightCards/cardError';
10
10
  export { defaultImageCardDimensions } from './utils/cardDimensions';
11
11
  export { fileCardImageViewSelector } from './card/classnames';
12
12
  export { inlinePlayerClassName } from './card/inlinePlayerWrapperStyles';
13
- export { newFileExperienceClassName } from './card/cardConstants';
13
+ export { newFileExperienceClassName } from './card/cardConstants';
14
+ export { DateOverrideContext } from './dateOverrideContext';
@@ -103,7 +103,7 @@ var MediaInlineCardLoader = /*#__PURE__*/function (_React$PureComponent) {
103
103
  ErrorBoundary = _this$state.ErrorBoundary;
104
104
  var analyticsContext = {
105
105
  packageVersion: "@atlaskit/media-card",
106
- packageName: "77.6.7",
106
+ packageName: "77.7.1",
107
107
  componentName: 'mediaInlineCard',
108
108
  component: 'mediaInlineCard'
109
109
  };
@@ -7,7 +7,7 @@ import { extractErrorInfo, getRenderErrorRequestMetadata } from './analytics';
7
7
  import { MediaCardError } from '../errors';
8
8
  import { getMediaEnvironment, getMediaRegion } from '@atlaskit/media-client';
9
9
  var packageName = "@atlaskit/media-card";
10
- var packageVersion = "77.6.7";
10
+ var packageVersion = "77.7.1";
11
11
  var concurrentExperience;
12
12
  var getExperience = function getExperience(id) {
13
13
  if (!concurrentExperience) {
@@ -4,7 +4,9 @@ import { FileIdentifier, FileState, MediaSubscription } from '@atlaskit/media-cl
4
4
  import { WrappedComponentProps } from 'react-intl-next';
5
5
  import { CardAction } from './actions';
6
6
  import { CardProps, CardState, CardStatus } from '../types';
7
- export type CardBaseProps = CardProps & WithAnalyticsEventsProps & Partial<WrappedComponentProps>;
7
+ export type CardBaseProps = CardProps & WithAnalyticsEventsProps & Partial<WrappedComponentProps> & {
8
+ dateOverride?: number;
9
+ };
8
10
  export declare class CardBase extends Component<CardBaseProps, CardState> {
9
11
  private internalOccurrenceKey;
10
12
  private hasBeenMounted;
@@ -26,6 +26,7 @@ export interface CardViewOwnProps extends SharedCardProps {
26
26
  readonly forceSyncDisplay?: boolean;
27
27
  disableAnimation?: boolean;
28
28
  shouldHideTooltip?: boolean;
29
+ overriddenCreationDate?: number;
29
30
  }
30
31
  export interface CardViewState {
31
32
  elementWidth?: number;
@@ -0,0 +1,7 @@
1
+ /// <reference types="react" />
2
+ /**
3
+ * Provide capacity to override creation date
4
+ * `DateOverrideContext` is a stopgap for a specific bug (https://product-fabric.atlassian.net/browse/CXP-2840)
5
+ * This is a temporal solution, please consult before usage
6
+ */
7
+ export declare const DateOverrideContext: import("react").Context<Record<string, number> | undefined>;
@@ -13,3 +13,4 @@ export { defaultImageCardDimensions } from './utils/cardDimensions';
13
13
  export { fileCardImageViewSelector } from './card/classnames';
14
14
  export { inlinePlayerClassName } from './card/inlinePlayerWrapperStyles';
15
15
  export { newFileExperienceClassName } from './card/cardConstants';
16
+ export { DateOverrideContext } from './dateOverrideContext';
@@ -4,7 +4,9 @@ import { FileIdentifier, FileState, MediaSubscription } from '@atlaskit/media-cl
4
4
  import { WrappedComponentProps } from 'react-intl-next';
5
5
  import { CardAction } from './actions';
6
6
  import { CardProps, CardState, CardStatus } from '../types';
7
- export type CardBaseProps = CardProps & WithAnalyticsEventsProps & Partial<WrappedComponentProps>;
7
+ export type CardBaseProps = CardProps & WithAnalyticsEventsProps & Partial<WrappedComponentProps> & {
8
+ dateOverride?: number;
9
+ };
8
10
  export declare class CardBase extends Component<CardBaseProps, CardState> {
9
11
  private internalOccurrenceKey;
10
12
  private hasBeenMounted;
@@ -26,6 +26,7 @@ export interface CardViewOwnProps extends SharedCardProps {
26
26
  readonly forceSyncDisplay?: boolean;
27
27
  disableAnimation?: boolean;
28
28
  shouldHideTooltip?: boolean;
29
+ overriddenCreationDate?: number;
29
30
  }
30
31
  export interface CardViewState {
31
32
  elementWidth?: number;
@@ -0,0 +1,7 @@
1
+ /// <reference types="react" />
2
+ /**
3
+ * Provide capacity to override creation date
4
+ * `DateOverrideContext` is a stopgap for a specific bug (https://product-fabric.atlassian.net/browse/CXP-2840)
5
+ * This is a temporal solution, please consult before usage
6
+ */
7
+ export declare const DateOverrideContext: import("react").Context<Record<string, number> | undefined>;
@@ -13,3 +13,4 @@ export { defaultImageCardDimensions } from './utils/cardDimensions';
13
13
  export { fileCardImageViewSelector } from './card/classnames';
14
14
  export { inlinePlayerClassName } from './card/inlinePlayerWrapperStyles';
15
15
  export { newFileExperienceClassName } from './card/cardConstants';
16
+ export { DateOverrideContext } from './dateOverrideContext';
package/package.json CHANGED
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "name": "@atlaskit/media-card",
3
- "version": "77.6.7",
3
+ "version": "77.7.1",
4
4
  "description": "Includes all media card related components, CardView, CardViewSmall, Card...",
5
5
  "publishConfig": {
6
6
  "registry": "https://registry.npmjs.org/"
7
7
  },
8
- "repository": "https://bitbucket.org/atlassian/atlassian-frontend",
8
+ "repository": "https://bitbucket.org/atlassian/atlassian-frontend-mirror",
9
9
  "author": "Atlassian Pty Ltd",
10
10
  "license": "Apache-2.0",
11
11
  "main": "dist/cjs/index.js",
@@ -49,7 +49,7 @@
49
49
  "@atlaskit/platform-feature-flags": "^0.2.2",
50
50
  "@atlaskit/spinner": "^16.0.0",
51
51
  "@atlaskit/theme": "^12.6.0",
52
- "@atlaskit/tokens": "^1.33.0",
52
+ "@atlaskit/tokens": "^1.34.0",
53
53
  "@atlaskit/tooltip": "^18.1.0",
54
54
  "@atlaskit/ufo": "^0.2.0",
55
55
  "@babel/runtime": "^7.0.0",