@atlaskit/media-card 77.12.4 → 78.0.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 (151) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/dist/cjs/card/card.js +20 -1039
  3. package/dist/cjs/card/cardLoader.js +2 -2
  4. package/dist/cjs/card/cardView.js +255 -417
  5. package/dist/cjs/card/cardWithMediaClient.js +5 -9
  6. package/dist/cjs/card/{v2/cardviews → cardviews}/cardViewWrapper.js +8 -8
  7. package/dist/cjs/card/{v2/cardviews → cardviews}/errorCardView.js +6 -6
  8. package/dist/cjs/card/{v2/cardviews → cardviews}/iconCardView.js +5 -5
  9. package/dist/cjs/card/{v2/cardviews → cardviews}/imageCardView.js +5 -5
  10. package/dist/cjs/card/{v2/cardviews → cardviews}/index.js +2 -2
  11. package/dist/cjs/card/{v2/cardviews → cardviews}/loadingCardView.js +3 -3
  12. package/dist/cjs/card/{v2/cardviews → cardviews}/processingCardView.js +4 -4
  13. package/dist/cjs/card/{v2/cardviews → cardviews}/videoCardView.js +7 -7
  14. package/dist/cjs/card/{v2/externalImageCard.js → externalImageCard.js} +11 -11
  15. package/dist/cjs/card/{v2/fileCard.js → fileCard.js} +18 -18
  16. package/dist/cjs/card/index.js +2 -2
  17. package/dist/cjs/card/inlinePlayer.js +184 -267
  18. package/dist/cjs/card/media-card-analytics-error-boundary.js +1 -1
  19. package/dist/cjs/card/{v2/svgView → svgView}/svgView.js +9 -9
  20. package/dist/cjs/inline/loader.js +1 -1
  21. package/dist/cjs/utils/ufoExperiences.js +1 -1
  22. package/dist/es2019/card/card.js +20 -1023
  23. package/dist/es2019/card/cardLoader.js +2 -2
  24. package/dist/es2019/card/cardView.js +252 -403
  25. package/dist/es2019/card/cardWithMediaClient.js +6 -10
  26. package/dist/es2019/card/{v2/cardviews → cardviews}/cardViewWrapper.js +8 -8
  27. package/dist/es2019/card/{v2/cardviews → cardviews}/errorCardView.js +6 -6
  28. package/dist/es2019/card/{v2/cardviews → cardviews}/iconCardView.js +5 -5
  29. package/dist/es2019/card/{v2/cardviews → cardviews}/imageCardView.js +5 -5
  30. package/dist/es2019/card/{v2/cardviews → cardviews}/index.js +2 -2
  31. package/dist/es2019/card/{v2/cardviews → cardviews}/loadingCardView.js +3 -3
  32. package/dist/es2019/card/{v2/cardviews → cardviews}/processingCardView.js +4 -4
  33. package/dist/es2019/card/{v2/cardviews → cardviews}/videoCardView.js +7 -7
  34. package/dist/es2019/card/{v2/externalImageCard.js → externalImageCard.js} +11 -11
  35. package/dist/es2019/card/{v2/fileCard.js → fileCard.js} +18 -18
  36. package/dist/es2019/card/index.js +1 -1
  37. package/dist/es2019/card/inlinePlayer.js +127 -208
  38. package/dist/es2019/card/media-card-analytics-error-boundary.js +1 -1
  39. package/dist/es2019/card/{v2/svgView → svgView}/svgView.js +9 -9
  40. package/dist/es2019/inline/loader.js +1 -1
  41. package/dist/es2019/utils/ufoExperiences.js +1 -1
  42. package/dist/esm/card/card.js +21 -1040
  43. package/dist/esm/card/cardLoader.js +2 -2
  44. package/dist/esm/card/cardView.js +251 -416
  45. package/dist/esm/card/cardWithMediaClient.js +6 -10
  46. package/dist/esm/card/{v2/cardviews → cardviews}/cardViewWrapper.js +8 -8
  47. package/dist/esm/card/{v2/cardviews → cardviews}/errorCardView.js +6 -6
  48. package/dist/esm/card/{v2/cardviews → cardviews}/iconCardView.js +5 -5
  49. package/dist/esm/card/{v2/cardviews → cardviews}/imageCardView.js +5 -5
  50. package/dist/esm/card/{v2/cardviews → cardviews}/index.js +2 -2
  51. package/dist/esm/card/{v2/cardviews → cardviews}/loadingCardView.js +3 -3
  52. package/dist/esm/card/{v2/cardviews → cardviews}/processingCardView.js +4 -4
  53. package/dist/esm/card/{v2/cardviews → cardviews}/videoCardView.js +7 -7
  54. package/dist/esm/card/{v2/externalImageCard.js → externalImageCard.js} +11 -11
  55. package/dist/esm/card/{v2/fileCard.js → fileCard.js} +18 -18
  56. package/dist/esm/card/index.js +1 -1
  57. package/dist/esm/card/inlinePlayer.js +185 -269
  58. package/dist/esm/card/media-card-analytics-error-boundary.js +1 -1
  59. package/dist/esm/card/{v2/svgView → svgView}/svgView.js +9 -9
  60. package/dist/esm/inline/loader.js +1 -1
  61. package/dist/esm/utils/ufoExperiences.js +1 -1
  62. package/dist/types/card/card.d.ts +5 -66
  63. package/dist/types/card/cardLoader.d.ts +1 -1
  64. package/dist/types/card/cardView.d.ts +23 -45
  65. package/dist/types/card/cardWithMediaClient.d.ts +1 -1
  66. package/dist/types/card/{v2/cardviews → cardviews}/cardViewWrapper.d.ts +3 -3
  67. package/dist/types/card/{v2/cardviews → cardviews}/errorCardView.d.ts +1 -1
  68. package/dist/{types-ts4.5/card/v2 → types/card}/cardviews/iconCardView.d.ts +1 -1
  69. package/dist/{types-ts4.5/card/v2 → types/card}/cardviews/imageCardView.d.ts +1 -1
  70. package/dist/{types-ts4.5/card/v2 → types/card}/cardviews/index.d.ts +5 -5
  71. package/dist/types/card/{v2/cardviews → cardviews}/videoCardView.d.ts +1 -1
  72. package/dist/types/card/{v2/externalImageCard.d.ts → externalImageCard.d.ts} +1 -1
  73. package/dist/types/card/{v2/fileCard.d.ts → fileCard.d.ts} +2 -2
  74. package/dist/types/card/index.d.ts +1 -1
  75. package/dist/types/card/inlinePlayer.d.ts +2 -31
  76. package/dist/types/card/{v2/svgView → svgView}/errors.d.ts +1 -1
  77. package/dist/{types-ts4.5/card/v2 → types/card}/svgView/svgView.d.ts +2 -2
  78. package/dist/types-ts4.5/card/card.d.ts +5 -66
  79. package/dist/types-ts4.5/card/cardLoader.d.ts +1 -1
  80. package/dist/types-ts4.5/card/cardView.d.ts +23 -45
  81. package/dist/types-ts4.5/card/cardWithMediaClient.d.ts +1 -1
  82. package/dist/types-ts4.5/card/{v2/cardviews → cardviews}/cardViewWrapper.d.ts +3 -3
  83. package/dist/types-ts4.5/card/{v2/cardviews → cardviews}/errorCardView.d.ts +1 -1
  84. package/dist/{types/card/v2 → types-ts4.5/card}/cardviews/iconCardView.d.ts +1 -1
  85. package/dist/{types/card/v2 → types-ts4.5/card}/cardviews/imageCardView.d.ts +1 -1
  86. package/dist/{types/card/v2 → types-ts4.5/card}/cardviews/index.d.ts +5 -5
  87. package/dist/types-ts4.5/card/{v2/cardviews → cardviews}/videoCardView.d.ts +1 -1
  88. package/dist/types-ts4.5/card/{v2/externalImageCard.d.ts → externalImageCard.d.ts} +1 -1
  89. package/dist/types-ts4.5/card/{v2/fileCard.d.ts → fileCard.d.ts} +2 -2
  90. package/dist/types-ts4.5/card/index.d.ts +1 -1
  91. package/dist/types-ts4.5/card/inlinePlayer.d.ts +2 -31
  92. package/dist/types-ts4.5/card/{v2/svgView → svgView}/errors.d.ts +1 -1
  93. package/dist/{types/card/v2 → types-ts4.5/card}/svgView/svgView.d.ts +2 -2
  94. package/package.json +3 -6
  95. package/dist/cjs/card/cardSwitcher.js +0 -15
  96. package/dist/cjs/card/v2/cardV2.js +0 -41
  97. package/dist/cjs/card/v2/cardV2Loader.js +0 -36
  98. package/dist/cjs/card/v2/cardViewV2.js +0 -298
  99. package/dist/cjs/card/v2/cardWithMediaClientV2.js +0 -34
  100. package/dist/cjs/card/v2/inlinePlayerLazyV2.js +0 -35
  101. package/dist/cjs/card/v2/inlinePlayerV2.js +0 -224
  102. package/dist/es2019/card/cardSwitcher.js +0 -8
  103. package/dist/es2019/card/v2/cardV2.js +0 -33
  104. package/dist/es2019/card/v2/cardV2Loader.js +0 -18
  105. package/dist/es2019/card/v2/cardViewV2.js +0 -294
  106. package/dist/es2019/card/v2/cardWithMediaClientV2.js +0 -25
  107. package/dist/es2019/card/v2/inlinePlayerLazyV2.js +0 -10
  108. package/dist/es2019/card/v2/inlinePlayerV2.js +0 -166
  109. package/dist/esm/card/cardSwitcher.js +0 -8
  110. package/dist/esm/card/v2/cardV2.js +0 -34
  111. package/dist/esm/card/v2/cardV2Loader.js +0 -24
  112. package/dist/esm/card/v2/cardViewV2.js +0 -290
  113. package/dist/esm/card/v2/cardWithMediaClientV2.js +0 -27
  114. package/dist/esm/card/v2/inlinePlayerLazyV2.js +0 -23
  115. package/dist/esm/card/v2/inlinePlayerV2.js +0 -214
  116. package/dist/types/card/cardSwitcher.d.ts +0 -4
  117. package/dist/types/card/v2/cardV2.d.ts +0 -7
  118. package/dist/types/card/v2/cardV2Loader.d.ts +0 -4
  119. package/dist/types/card/v2/cardViewV2.d.ts +0 -59
  120. package/dist/types/card/v2/cardWithMediaClientV2.d.ts +0 -3
  121. package/dist/types/card/v2/inlinePlayerLazyV2.d.ts +0 -2
  122. package/dist/types/card/v2/inlinePlayerV2.d.ts +0 -24
  123. package/dist/types-ts4.5/card/cardSwitcher.d.ts +0 -4
  124. package/dist/types-ts4.5/card/v2/cardV2.d.ts +0 -7
  125. package/dist/types-ts4.5/card/v2/cardV2Loader.d.ts +0 -4
  126. package/dist/types-ts4.5/card/v2/cardViewV2.d.ts +0 -59
  127. package/dist/types-ts4.5/card/v2/cardWithMediaClientV2.d.ts +0 -3
  128. package/dist/types-ts4.5/card/v2/inlinePlayerLazyV2.d.ts +0 -2
  129. package/dist/types-ts4.5/card/v2/inlinePlayerV2.d.ts +0 -24
  130. /package/dist/cjs/card/{v2/performance.js → performance.js} +0 -0
  131. /package/dist/cjs/card/{v2/svgView → svgView}/errors.js +0 -0
  132. /package/dist/cjs/card/{v2/svgView → svgView}/helpers.js +0 -0
  133. /package/dist/cjs/card/{v2/svgView → svgView}/index.js +0 -0
  134. /package/dist/es2019/card/{v2/performance.js → performance.js} +0 -0
  135. /package/dist/es2019/card/{v2/svgView → svgView}/errors.js +0 -0
  136. /package/dist/es2019/card/{v2/svgView → svgView}/helpers.js +0 -0
  137. /package/dist/es2019/card/{v2/svgView → svgView}/index.js +0 -0
  138. /package/dist/esm/card/{v2/performance.js → performance.js} +0 -0
  139. /package/dist/esm/card/{v2/svgView → svgView}/errors.js +0 -0
  140. /package/dist/esm/card/{v2/svgView → svgView}/helpers.js +0 -0
  141. /package/dist/esm/card/{v2/svgView → svgView}/index.js +0 -0
  142. /package/dist/types/card/{v2/cardviews → cardviews}/loadingCardView.d.ts +0 -0
  143. /package/dist/types/card/{v2/cardviews → cardviews}/processingCardView.d.ts +0 -0
  144. /package/dist/types/card/{v2/performance.d.ts → performance.d.ts} +0 -0
  145. /package/dist/types/card/{v2/svgView → svgView}/helpers.d.ts +0 -0
  146. /package/dist/types/card/{v2/svgView → svgView}/index.d.ts +0 -0
  147. /package/dist/types-ts4.5/card/{v2/cardviews → cardviews}/loadingCardView.d.ts +0 -0
  148. /package/dist/types-ts4.5/card/{v2/cardviews → cardviews}/processingCardView.d.ts +0 -0
  149. /package/dist/types-ts4.5/card/{v2/performance.d.ts → performance.d.ts} +0 -0
  150. /package/dist/types-ts4.5/card/{v2/svgView → svgView}/helpers.d.ts +0 -0
  151. /package/dist/types-ts4.5/card/{v2/svgView → svgView}/index.d.ts +0 -0
@@ -1,224 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- var _typeof = require("@babel/runtime/helpers/typeof");
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports.getPreferredVideoArtifact = exports.InlinePlayerV2 = exports.InlinePlayerBaseV2 = void 0;
9
- var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
10
- var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
11
- var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
12
- var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
13
- var _react = _interopRequireWildcard(require("react"));
14
- var _mediaClient = require("@atlaskit/media-client");
15
- var _mediaUi = require("@atlaskit/media-ui");
16
- var _utils = require("../../utils");
17
- var _cardLoading = require("../../utils/lightCards/cardLoading");
18
- var _progressBar = require("../ui/progressBar/progressBar");
19
- var _inlinePlayerWrapper = require("../inlinePlayerWrapper");
20
- var _useBreakpoint = require("../useBreakpoint");
21
- var _mediaClientReact = require("@atlaskit/media-client-react");
22
- function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
23
- function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
24
- var getPreferredVideoArtifact = exports.getPreferredVideoArtifact = function getPreferredVideoArtifact(fileState) {
25
- if (fileState.status === 'processed' || fileState.status === 'processing') {
26
- var artifacts = fileState.artifacts;
27
- if (!artifacts) {
28
- return undefined;
29
- }
30
- return artifacts['video_1280.mp4'] ? 'video_1280.mp4' : artifacts['video_640.mp4'] ? 'video_640.mp4' : undefined;
31
- }
32
- return undefined;
33
- };
34
- var InlinePlayerBaseV2 = exports.InlinePlayerBaseV2 = function InlinePlayerBaseV2(_ref) {
35
- var identifier = _ref.identifier,
36
- onError = _ref.onError,
37
- onClick = _ref.onClick,
38
- _ref$dimensions = _ref.dimensions,
39
- dimensions = _ref$dimensions === void 0 ? _utils.defaultImageCardDimensions : _ref$dimensions,
40
- originalDimensions = _ref.originalDimensions,
41
- selected = _ref.selected,
42
- testId = _ref.testId,
43
- forwardRef = _ref.forwardRef,
44
- autoplay = _ref.autoplay,
45
- cardPreview = _ref.cardPreview,
46
- onFullscreenChange = _ref.onFullscreenChange,
47
- videoControlsWrapperRef = _ref.videoControlsWrapperRef;
48
- // === States ===
49
- var _useState = (0, _react.useState)(),
50
- _useState2 = (0, _slicedToArray2.default)(_useState, 2),
51
- fileSrc = _useState2[0],
52
- setFileSrc = _useState2[1];
53
- var _useState3 = (0, _react.useState)(),
54
- _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
55
- isUploading = _useState4[0],
56
- setIsUploading = _useState4[1];
57
- var _useState5 = (0, _react.useState)(),
58
- _useState6 = (0, _slicedToArray2.default)(_useState5, 2),
59
- progress = _useState6[0],
60
- setProgress = _useState6[1];
61
-
62
- // === Refs and Local Variables ===
63
- var divRef = (0, _react.useRef)(null);
64
- var onErrorRef = (0, _react.useRef)(onError);
65
- onErrorRef.current = onError;
66
- var id = identifier.id,
67
- collectionName = identifier.collectionName,
68
- occurrenceKey = identifier.occurrenceKey;
69
- var breakpoint = (0, _useBreakpoint.useBreakpoint)(dimensions === null || dimensions === void 0 ? void 0 : dimensions.width, divRef);
70
- var mediaClient = (0, _mediaClientReact.useMediaClient)();
71
- var _useFileState = (0, _mediaClientReact.useFileState)(id, {
72
- collectionName: collectionName,
73
- occurrenceKey: occurrenceKey
74
- }),
75
- fileState = _useFileState.fileState;
76
- (0, _react.useEffect)(function () {
77
- var subscribeFileState = /*#__PURE__*/function () {
78
- var _ref2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(fileState) {
79
- var _yield$fileState$prev, value, newFileSrc, artifactName, artifacts, _newFileSrc, _newFileSrc2;
80
- return _regenerator.default.wrap(function _callee$(_context) {
81
- while (1) switch (_context.prev = _context.next) {
82
- case 0:
83
- if (fileState.status === 'uploading') {
84
- setIsUploading(true);
85
- setProgress(fileState.progress);
86
- } else {
87
- setIsUploading(false);
88
- }
89
-
90
- // We reuse the existing fileSrc to prevent re renders, therefore we only perform fileSrc updates when there isn't any
91
- if (!fileSrc) {
92
- _context.next = 3;
93
- break;
94
- }
95
- return _context.abrupt("return");
96
- case 3:
97
- if (!(fileState.status !== 'error' && fileState.preview)) {
98
- _context.next = 12;
99
- break;
100
- }
101
- _context.next = 6;
102
- return fileState.preview;
103
- case 6:
104
- _yield$fileState$prev = _context.sent;
105
- value = _yield$fileState$prev.value;
106
- if (!(value instanceof Blob && value.type.indexOf('video/') === 0)) {
107
- _context.next = 12;
108
- break;
109
- }
110
- newFileSrc = URL.createObjectURL(value);
111
- setFileSrc(newFileSrc);
112
- return _context.abrupt("return");
113
- case 12:
114
- if (!(fileState.status === 'processed' || fileState.status === 'processing')) {
115
- _context.next = 37;
116
- break;
117
- }
118
- artifactName = getPreferredVideoArtifact(fileState);
119
- artifacts = fileState.artifacts;
120
- if (!(!artifactName || !artifacts)) {
121
- _context.next = 27;
122
- break;
123
- }
124
- _context.prev = 16;
125
- _context.next = 19;
126
- return mediaClient.file.getFileBinaryURL(id, collectionName);
127
- case 19:
128
- _newFileSrc = _context.sent;
129
- setFileSrc(_newFileSrc);
130
- _context.next = 26;
131
- break;
132
- case 23:
133
- _context.prev = 23;
134
- _context.t0 = _context["catch"](16);
135
- if (onErrorRef.current && _context.t0 instanceof Error) {
136
- onErrorRef.current(_context.t0);
137
- }
138
- case 26:
139
- return _context.abrupt("return");
140
- case 27:
141
- _context.prev = 27;
142
- _context.next = 30;
143
- return mediaClient.file.getArtifactURL(artifacts, artifactName, collectionName);
144
- case 30:
145
- _newFileSrc2 = _context.sent;
146
- setFileSrc(_newFileSrc2);
147
- _context.next = 37;
148
- break;
149
- case 34:
150
- _context.prev = 34;
151
- _context.t1 = _context["catch"](27);
152
- if (onErrorRef.current && _context.t1 instanceof Error) {
153
- onErrorRef.current(_context.t1);
154
- }
155
- case 37:
156
- case "end":
157
- return _context.stop();
158
- }
159
- }, _callee, null, [[16, 23], [27, 34]]);
160
- }));
161
- return function subscribeFileState(_x) {
162
- return _ref2.apply(this, arguments);
163
- };
164
- }();
165
- if (fileState) {
166
- subscribeFileState(fileState);
167
- }
168
- }, [fileState, collectionName, fileSrc, id, mediaClient]);
169
- (0, _react.useEffect)(function () {
170
- return function () {
171
- fileSrc && URL.revokeObjectURL(fileSrc);
172
- };
173
- }, [fileSrc]);
174
-
175
- // === Render ===
176
- return fileSrc ? /*#__PURE__*/_react.default.createElement(_inlinePlayerWrapper.InlinePlayerWrapper, {
177
- testId: testId || 'media-card-inline-player',
178
- selected: {
179
- selected: selected
180
- },
181
- onClick: onClick,
182
- innerRef: forwardRef || undefined,
183
- dimensions: dimensions
184
- }, /*#__PURE__*/_react.default.createElement(_mediaUi.InactivityDetector, null, function (checkMouseMovement) {
185
- return /*#__PURE__*/_react.default.createElement(_mediaUi.CustomMediaPlayer, {
186
- type: "video",
187
- src: fileSrc,
188
- onFullscreenChange: onFullscreenChange,
189
- fileId: id,
190
- isAutoPlay: autoplay,
191
- isHDAvailable: false,
192
- onDownloadClick: function onDownloadClick() {
193
- mediaClient.file.downloadBinary(id, undefined, collectionName);
194
- },
195
- onFirstPlay: function onFirstPlay() {
196
- _mediaClient.globalMediaEventEmitter.emit('media-viewed', {
197
- fileId: id,
198
- viewingLevel: 'full'
199
- });
200
- },
201
- lastWatchTimeConfig: {
202
- contentId: id
203
- },
204
- originalDimensions: originalDimensions,
205
- showControls: checkMouseMovement,
206
- poster: cardPreview === null || cardPreview === void 0 ? void 0 : cardPreview.dataURI,
207
- videoControlsWrapperRef: videoControlsWrapperRef
208
- });
209
- }), isUploading && /*#__PURE__*/_react.default.createElement(_progressBar.ProgressBar, {
210
- progress: progress,
211
- breakpoint: breakpoint,
212
- positionBottom: true,
213
- showOnTop: true
214
- })) : /*#__PURE__*/_react.default.createElement(_cardLoading.CardLoading, {
215
- testId: testId,
216
- dimensions: dimensions
217
- });
218
- };
219
- var InlinePlayerForwardRef = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
220
- return /*#__PURE__*/_react.default.createElement(InlinePlayerBaseV2, (0, _extends2.default)({}, props, {
221
- forwardRef: ref
222
- }));
223
- });
224
- var InlinePlayerV2 = exports.InlinePlayerV2 = InlinePlayerForwardRef;
@@ -1,8 +0,0 @@
1
- import React from 'react';
2
- import { getBooleanFF } from '@atlaskit/platform-feature-flags';
3
- import CardLoader from './cardLoader';
4
- import CardV2Loader from './v2/cardV2Loader';
5
- function CardSwitcher(props) {
6
- return getBooleanFF('platform.media-experience.cardv2_7zann') ? /*#__PURE__*/React.createElement(CardV2Loader, props) : /*#__PURE__*/React.createElement(CardLoader, props);
7
- }
8
- export default CardSwitcher;
@@ -1,33 +0,0 @@
1
- import _extends from "@babel/runtime/helpers/extends";
2
- import { withAnalyticsEvents } from '@atlaskit/analytics-next';
3
- import { isFileIdentifier } from '@atlaskit/media-client';
4
- import { withMediaAnalyticsContext } from '@atlaskit/media-common';
5
- import React from 'react';
6
- import { IntlProvider, injectIntl } from 'react-intl-next';
7
- import { ExternalImageCard } from './externalImageCard';
8
- import { FileCard } from './fileCard';
9
- const packageName = "@atlaskit/media-card";
10
- const packageVersion = "77.12.4";
11
- export const CardV2Base = ({
12
- identifier,
13
- ...otherProps
14
- }) => {
15
- const innerContent = isFileIdentifier(identifier) ? /*#__PURE__*/React.createElement(FileCard, _extends({}, otherProps, {
16
- identifier: identifier,
17
- key: identifier.id
18
- })) : /*#__PURE__*/React.createElement(ExternalImageCard, _extends({}, otherProps, {
19
- identifier: identifier,
20
- key: identifier.dataURI
21
- }));
22
- return otherProps.intl ? innerContent : /*#__PURE__*/React.createElement(IntlProvider, {
23
- locale: "en"
24
- }, innerContent);
25
- };
26
- export const CardV2 = withMediaAnalyticsContext({
27
- packageVersion,
28
- packageName,
29
- componentName: 'mediaCard',
30
- component: 'mediaCard'
31
- })(withAnalyticsEvents()(injectIntl(CardV2Base, {
32
- enforceContext: false
33
- })));
@@ -1,18 +0,0 @@
1
- import React, { useContext } from 'react';
2
- import Loadable from 'react-loadable';
3
- import { CardLoading } from '../../utils/lightCards/cardLoading';
4
- const MediaCardContext = /*#__PURE__*/React.createContext({});
5
- const CardLoadingWithContext = () => {
6
- const props = useContext(MediaCardContext);
7
- return /*#__PURE__*/React.createElement(CardLoading, props);
8
- };
9
- const MediaCardWithMediaClientProvider = Loadable({
10
- loader: () => import( /* webpackChunkName: "@atlaskit-internal_media-card-with-media-client-v2" */'./cardWithMediaClientV2').then(mod => mod.CardWithMediaClientV2),
11
- loading: () => /*#__PURE__*/React.createElement(CardLoadingWithContext, null)
12
- });
13
- const CardLoader = props => {
14
- return /*#__PURE__*/React.createElement(MediaCardContext.Provider, {
15
- value: props
16
- }, /*#__PURE__*/React.createElement(MediaCardWithMediaClientProvider, props));
17
- };
18
- export default CardLoader;
@@ -1,294 +0,0 @@
1
- /** @jsx jsx */
2
- // eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled -- Ignored via go/DSP-18766
3
- import { jsx } from '@emotion/react';
4
- import React, { useEffect, useState, useRef } from 'react';
5
- import { withAnalyticsEvents } from '@atlaskit/analytics-next';
6
- import { MimeTypeIcon } from '@atlaskit/media-ui/mime-type-icon';
7
- import SpinnerIcon from '@atlaskit/spinner';
8
- import Tooltip from '@atlaskit/tooltip';
9
- import { messages } from '@atlaskit/media-ui';
10
- import { createAndFireMediaCardEvent } from '../../utils/analytics';
11
- import { attachDetailsToActions } from '../actions';
12
- import { ImageRenderer } from '../ui/imageRenderer/imageRenderer';
13
- import { TitleBox } from '../ui/titleBox/titleBox';
14
- import { FailedTitleBox } from '../ui/titleBox/failedTitleBox';
15
- import { ProgressBar } from '../ui/progressBar/progressBar';
16
- import { PlayButton } from '../ui/playButton/playButton';
17
- import { TickBox } from '../ui/tickBox/tickBox';
18
- import { Blanket } from '../ui/blanket/blanket';
19
- import { ActionsBar } from '../ui/actionsBar/actionsBar';
20
- import { IconWrapper } from '../ui/iconWrapper/iconWrapper';
21
- import { PreviewUnavailable, CreatingPreview, FailedToUpload, PreviewCurrentlyUnavailable, FailedToLoad } from '../ui/iconMessage';
22
- import { isUploadError, isRateLimitedError, isPollingError } from '../../errors';
23
- import { Wrapper, ImageContainer } from '../ui/wrapper';
24
- import { fileCardImageViewSelector } from '../classnames';
25
- import { useBreakpoint } from '../useBreakpoint';
26
- import OpenMediaViewerButton from '../ui/openMediaViewerButton/openMediaViewerButton';
27
- export const CardViewV2Base = ({
28
- innerRef,
29
- onImageLoad,
30
- onImageError,
31
- dimensions,
32
- onClick,
33
- onMouseEnter,
34
- testId,
35
- metadata,
36
- status,
37
- selected,
38
- selectable,
39
- cardPreview,
40
- mediaCardCursor,
41
- shouldHideTooltip,
42
- progress,
43
- alt,
44
- resizeMode,
45
- onDisplayImage,
46
- nativeLazyLoad,
47
- forceSyncDisplay,
48
- actions,
49
- disableOverlay,
50
- titleBoxBgColor,
51
- titleBoxIcon,
52
- error,
53
- disableAnimation,
54
- openMediaViewerButtonRef = null,
55
- shouldOpenMediaViewer,
56
- overriddenCreationDate
57
- }) => {
58
- const [didImageRender, setDidImageRender] = useState(false);
59
- const divRef = useRef(null);
60
- const prevCardPreviewRef = useRef();
61
- const breakpoint = useBreakpoint(dimensions === null || dimensions === void 0 ? void 0 : dimensions.width, divRef);
62
- useEffect(() => {
63
- innerRef && !!divRef.current && innerRef(divRef.current);
64
- }, [innerRef]);
65
- useEffect(() => {
66
- // We should only switch didImageRender to false when cardPreview goes undefined, not when it is changed. as this method could be triggered after onImageLoad callback, falling on a race condition
67
- if (prevCardPreviewRef.current && !cardPreview) {
68
- setDidImageRender(false);
69
- }
70
- prevCardPreviewRef.current = cardPreview;
71
- }, [cardPreview]);
72
- const handleOnImageLoad = prevCardPreview => {
73
- if (prevCardPreview.dataURI !== (cardPreview === null || cardPreview === void 0 ? void 0 : cardPreview.dataURI)) {
74
- return;
75
- }
76
- /*
77
- We render the icon & icon message always, even if there is cardPreview available.
78
- If the image fails to load/render, the icon will remain, i.e. the user won't see a change until the root card decides to chage status to error.
79
- If the image renders successfully, we switch this variable to hide the icon & icon message behind the thumbnail in case the image has transparency.
80
- It is less likely that root component replaces a suceeded cardPreview for a failed one than the opposite case. Therefore we prefer to hide the icon instead show when the image fails, for a smoother transition
81
- */
82
- setDidImageRender(true);
83
- onImageLoad === null || onImageLoad === void 0 ? void 0 : onImageLoad(cardPreview);
84
- };
85
- const handleOnImageError = prevCardPreview => {
86
- if (prevCardPreview.dataURI !== (cardPreview === null || cardPreview === void 0 ? void 0 : cardPreview.dataURI)) {
87
- return;
88
- }
89
- setDidImageRender(false);
90
- onImageError === null || onImageError === void 0 ? void 0 : onImageError(cardPreview);
91
- };
92
- const shouldRenderPlayButton = () => {
93
- const {
94
- mediaType
95
- } = metadata || {};
96
- if (mediaType !== 'video' || !cardPreview) {
97
- return false;
98
- }
99
- return true;
100
- };
101
- const getRenderConfigByStatus = () => {
102
- const {
103
- name,
104
- mediaType
105
- } = metadata || {};
106
- const isZeroSize = metadata && metadata.size === 0;
107
- const defaultConfig = {
108
- renderTypeIcon: !didImageRender,
109
- renderImageRenderer: !!cardPreview,
110
- renderPlayButton: !!cardPreview && mediaType === 'video',
111
- renderBlanket: !disableOverlay,
112
- renderTitleBox: !disableOverlay && !!name,
113
- renderTickBox: !disableOverlay && !!selectable
114
- };
115
- switch (status) {
116
- case 'uploading':
117
- return {
118
- ...defaultConfig,
119
- renderBlanket: !disableOverlay || mediaType !== 'video',
120
- isFixedBlanket: true,
121
- renderProgressBar: true
122
- };
123
- case 'processing':
124
- return {
125
- ...defaultConfig,
126
- iconMessage: !didImageRender && !isZeroSize ? jsx(CreatingPreview, {
127
- disableAnimation: disableAnimation
128
- }) : undefined
129
- };
130
- case 'complete':
131
- return defaultConfig;
132
- case 'error':
133
- case 'failed-processing':
134
- const baseErrorConfig = {
135
- ...defaultConfig,
136
- renderTypeIcon: true,
137
- renderImageRenderer: false,
138
- renderTitleBox: false,
139
- renderPlayButton: false
140
- };
141
- let iconMessage;
142
- let customTitleMessage;
143
- const {
144
- secondaryError
145
- } = error || {};
146
- if (isRateLimitedError(secondaryError) || isPollingError(secondaryError)) {
147
- iconMessage = jsx(PreviewCurrentlyUnavailable, null);
148
- } else if (isUploadError(error)) {
149
- iconMessage = jsx(FailedToUpload, null);
150
- customTitleMessage = messages.failed_to_upload;
151
- } else if (!metadata) {
152
- iconMessage = jsx(FailedToLoad, null);
153
- } else {
154
- iconMessage = jsx(PreviewUnavailable, null);
155
- }
156
- if (!disableOverlay) {
157
- const renderFailedTitleBox = !name || !!customTitleMessage;
158
- return {
159
- ...baseErrorConfig,
160
- renderTitleBox: !!name && !customTitleMessage,
161
- renderFailedTitleBox,
162
- iconMessage: !renderFailedTitleBox ? iconMessage : undefined,
163
- customTitleMessage
164
- };
165
- }
166
- return {
167
- ...baseErrorConfig,
168
- iconMessage
169
- };
170
- case 'loading-preview':
171
- case 'loading':
172
- default:
173
- return {
174
- ...defaultConfig,
175
- renderPlayButton: false,
176
- renderTypeIcon: false,
177
- renderSpinner: !didImageRender
178
- };
179
- }
180
- };
181
- const {
182
- renderTypeIcon,
183
- iconMessage,
184
- renderImageRenderer,
185
- renderSpinner,
186
- renderPlayButton,
187
- renderBlanket,
188
- renderProgressBar,
189
- renderTitleBox,
190
- renderFailedTitleBox,
191
- renderTickBox,
192
- isFixedBlanket,
193
- customTitleMessage
194
- } = getRenderConfigByStatus();
195
- const shouldDisplayBackground = !cardPreview || !disableOverlay || status === 'error' || status === 'failed-processing';
196
- const isPlayButtonClickable = shouldRenderPlayButton() && !!disableOverlay;
197
- const isTickBoxSelectable = !disableOverlay && !!selectable && !selected;
198
- // Disable tooltip for Media Single
199
- const shouldDisplayTooltip = !disableOverlay && !shouldHideTooltip;
200
- const hasTitleBox = !!(renderTitleBox || renderFailedTitleBox);
201
- const {
202
- mediaType,
203
- mimeType,
204
- name,
205
- createdAt
206
- } = metadata || {};
207
- const actionsWithDetails = metadata && actions ? attachDetailsToActions(actions, metadata) : [];
208
- const contents = jsx(React.Fragment, null, jsx(ImageContainer, {
209
- testId: fileCardImageViewSelector,
210
- mediaName: name,
211
- status: status,
212
- progress: progress,
213
- selected: selected,
214
- source: cardPreview === null || cardPreview === void 0 ? void 0 : cardPreview.source
215
- }, renderTypeIcon && jsx(IconWrapper, {
216
- breakpoint: breakpoint,
217
- hasTitleBox: hasTitleBox
218
- }, jsx(MimeTypeIcon, {
219
- testId: "media-card-file-type-icon",
220
- mediaType: mediaType,
221
- mimeType: mimeType,
222
- name: name
223
- }), iconMessage), renderSpinner && jsx(IconWrapper, {
224
- breakpoint: breakpoint,
225
- hasTitleBox: hasTitleBox
226
- }, jsx(SpinnerIcon, {
227
- testId: "media-card-loading",
228
- interactionName: "media-card-loading"
229
- })), renderImageRenderer && !!cardPreview && jsx(ImageRenderer, {
230
- cardPreview: cardPreview,
231
- mediaType: (metadata === null || metadata === void 0 ? void 0 : metadata.mediaType) || 'unknown',
232
- alt: alt || name,
233
- resizeMode: resizeMode,
234
- onDisplayImage: onDisplayImage,
235
- onImageLoad: handleOnImageLoad,
236
- onImageError: handleOnImageError,
237
- nativeLazyLoad: nativeLazyLoad,
238
- forceSyncDisplay: forceSyncDisplay
239
- }), renderPlayButton && jsx(IconWrapper, {
240
- breakpoint: breakpoint,
241
- hasTitleBox: hasTitleBox
242
- }, jsx(PlayButton, null)), renderBlanket && jsx(Blanket, {
243
- isFixed: isFixedBlanket
244
- }), renderTitleBox && name && jsx(TitleBox, {
245
- name: name,
246
- createdAt: overriddenCreationDate !== null && overriddenCreationDate !== void 0 ? overriddenCreationDate : createdAt,
247
- breakpoint: breakpoint,
248
- titleBoxIcon: titleBoxIcon,
249
- titleBoxBgColor: titleBoxBgColor
250
- }), renderFailedTitleBox && jsx(FailedTitleBox, {
251
- breakpoint: breakpoint,
252
- customMessage: customTitleMessage
253
- }), renderProgressBar && jsx(ProgressBar, {
254
- progress: progress,
255
- breakpoint: breakpoint,
256
- positionBottom: !hasTitleBox
257
- }), renderTickBox && jsx(TickBox, {
258
- selected: selected
259
- })), disableOverlay || !actions || actions.length === 0 ? null : jsx(ActionsBar, {
260
- filename: name,
261
- actions: actionsWithDetails
262
- }));
263
- return jsx(React.Fragment, null, shouldOpenMediaViewer && jsx(OpenMediaViewerButton, {
264
- fileName: name !== null && name !== void 0 ? name : '',
265
- innerRef: openMediaViewerButtonRef,
266
- onClick: onClick
267
- }), jsx(Wrapper, {
268
- testId: testId || 'media-card-view',
269
- dimensions: dimensions,
270
- onClick: onClick,
271
- onMouseEnter: onMouseEnter,
272
- innerRef: divRef,
273
- breakpoint: breakpoint,
274
- mediaCardCursor: mediaCardCursor,
275
- disableOverlay: !!disableOverlay,
276
- selected: !!selected,
277
- displayBackground: shouldDisplayBackground,
278
- isPlayButtonClickable: isPlayButtonClickable,
279
- isTickBoxSelectable: isTickBoxSelectable,
280
- shouldDisplayTooltip: shouldDisplayTooltip
281
- }, shouldDisplayTooltip ? jsx(Tooltip, {
282
- content: name,
283
- position: "bottom",
284
- tag: "div"
285
- }, contents) : contents));
286
- };
287
- export const CardViewV2 = withAnalyticsEvents({
288
- onClick: createAndFireMediaCardEvent({
289
- eventType: 'ui',
290
- action: 'clicked',
291
- actionSubject: 'mediaCard',
292
- attributes: {}
293
- })
294
- })(CardViewV2Base);
@@ -1,25 +0,0 @@
1
- import _extends from "@babel/runtime/helpers/extends";
2
- import React from 'react';
3
- import { withMediaClient } from '@atlaskit/media-client-react';
4
- import MediaCardAnalyticsErrorBoundary from '../media-card-analytics-error-boundary';
5
- import { CardV2 } from './cardV2';
6
- export const CardWithMediaClientV2 = props => {
7
- const {
8
- dimensions,
9
- onClick,
10
- featureFlags
11
- } = props;
12
- const Card = React.useMemo(() => {
13
- return withMediaClient(CardV2);
14
- }, []);
15
- const featureFlagsWithMediaCardV2 = React.useMemo(() => ({
16
- ...featureFlags,
17
- mediaCardV2: true //used for analytics - internal use only
18
- }), [featureFlags]);
19
- return /*#__PURE__*/React.createElement(MediaCardAnalyticsErrorBoundary, {
20
- dimensions: dimensions,
21
- onClick: onClick
22
- }, /*#__PURE__*/React.createElement(Card, _extends({}, props, {
23
- featureFlags: featureFlagsWithMediaCardV2
24
- })));
25
- };
@@ -1,10 +0,0 @@
1
- import { lazy } from 'react';
2
- export const InlinePlayerLazyV2 = /*#__PURE__*/lazy(async () => {
3
- const {
4
- InlinePlayerV2
5
- } = await import( /* webpackChunkName: "@atlaskit-internal_media-card-inlineplayer-v2" */
6
- './inlinePlayerV2');
7
- return {
8
- default: InlinePlayerV2
9
- };
10
- });