@atlaskit/media-card 72.0.0 → 72.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (80) hide show
  1. package/CHANGELOG.md +22 -0
  2. package/dist/cjs/errors.js +26 -6
  3. package/dist/cjs/root/card/cardLoader.js +66 -124
  4. package/dist/cjs/root/card/getCardPreview/index.js +90 -10
  5. package/dist/cjs/root/card/index.js +154 -84
  6. package/dist/cjs/root/cardView.js +41 -54
  7. package/dist/cjs/root/inline/mediaInlineCard.js +10 -5
  8. package/dist/cjs/root/ui/common.js +11 -5
  9. package/dist/cjs/root/ui/imageRenderer/imageRenderer.js +6 -2
  10. package/dist/cjs/root/ui/loadingRateLimited/loadingRateLimited.js +2 -2
  11. package/dist/cjs/root/ui/progressBar/progressBar.js +2 -2
  12. package/dist/cjs/root/ui/progressBar/styled.js +1 -3
  13. package/dist/cjs/root/ui/styled.js +80 -17
  14. package/dist/cjs/root/ui/titleBox/styled.js +1 -3
  15. package/dist/cjs/utils/cardActions/cardActionsDropdownMenu.js +16 -9
  16. package/dist/cjs/version.json +1 -1
  17. package/dist/es2019/errors.js +9 -1
  18. package/dist/es2019/root/card/cardLoader.js +47 -53
  19. package/dist/es2019/root/card/getCardPreview/index.js +45 -3
  20. package/dist/es2019/root/card/index.js +87 -20
  21. package/dist/es2019/root/cardView.js +26 -40
  22. package/dist/es2019/root/inline/mediaInlineCard.js +10 -5
  23. package/dist/es2019/root/ui/common.js +7 -1
  24. package/dist/es2019/root/ui/imageRenderer/imageRenderer.js +6 -2
  25. package/dist/es2019/root/ui/loadingRateLimited/loadingRateLimited.js +1 -1
  26. package/dist/es2019/root/ui/progressBar/progressBar.js +1 -1
  27. package/dist/es2019/root/ui/progressBar/styled.js +1 -2
  28. package/dist/es2019/root/ui/styled.js +64 -3
  29. package/dist/es2019/root/ui/titleBox/styled.js +1 -2
  30. package/dist/es2019/utils/cardActions/cardActionsDropdownMenu.js +8 -4
  31. package/dist/es2019/version.json +1 -1
  32. package/dist/esm/errors.js +23 -5
  33. package/dist/esm/root/card/cardLoader.js +66 -126
  34. package/dist/esm/root/card/getCardPreview/index.js +72 -10
  35. package/dist/esm/root/card/index.js +156 -85
  36. package/dist/esm/root/cardView.js +40 -52
  37. package/dist/esm/root/inline/mediaInlineCard.js +10 -5
  38. package/dist/esm/root/ui/common.js +7 -1
  39. package/dist/esm/root/ui/imageRenderer/imageRenderer.js +6 -2
  40. package/dist/esm/root/ui/loadingRateLimited/loadingRateLimited.js +1 -1
  41. package/dist/esm/root/ui/progressBar/progressBar.js +1 -1
  42. package/dist/esm/root/ui/progressBar/styled.js +1 -2
  43. package/dist/esm/root/ui/styled.js +61 -13
  44. package/dist/esm/root/ui/titleBox/styled.js +1 -2
  45. package/dist/esm/utils/cardActions/cardActionsDropdownMenu.js +16 -9
  46. package/dist/esm/version.json +1 -1
  47. package/dist/types/errors.d.ts +9 -3
  48. package/dist/types/index.d.ts +2 -1
  49. package/dist/types/root/card/cardLoader.d.ts +4 -18
  50. package/dist/types/root/card/getCardPreview/index.d.ts +7 -1
  51. package/dist/types/root/card/index.d.ts +2 -0
  52. package/dist/types/root/cardView.d.ts +3 -1
  53. package/dist/types/root/ui/common.d.ts +4 -1
  54. package/dist/types/root/ui/iconWrapper/styled.d.ts +1 -1
  55. package/dist/types/root/ui/imageRenderer/imageRenderer.d.ts +3 -2
  56. package/dist/types/root/ui/loadingRateLimited/loadingRateLimited.d.ts +1 -1
  57. package/dist/types/root/ui/loadingRateLimited/styled.d.ts +1 -1
  58. package/dist/types/root/ui/progressBar/progressBar.d.ts +1 -1
  59. package/dist/types/root/ui/progressBar/styled.d.ts +1 -1
  60. package/dist/types/root/ui/styled.d.ts +10 -3
  61. package/dist/types/root/ui/titleBox/failedTitleBox.d.ts +1 -1
  62. package/dist/types/root/ui/titleBox/styled.d.ts +1 -1
  63. package/dist/types/root/ui/titleBox/titleBox.d.ts +1 -1
  64. package/dist/types/types.d.ts +1 -1
  65. package/example-helpers/developmentUseMessage.tsx +14 -0
  66. package/example-helpers/index.tsx +34 -4
  67. package/example-helpers/selectableCard.tsx +2 -1
  68. package/package.json +8 -5
  69. package/dist/cjs/root/card/cardSSRView.js +0 -114
  70. package/dist/cjs/root/ui/Breakpoint.js +0 -13
  71. package/dist/cjs/root/ui/styledSSR.js +0 -108
  72. package/dist/es2019/root/card/cardSSRView.js +0 -93
  73. package/dist/es2019/root/ui/Breakpoint.js +0 -6
  74. package/dist/es2019/root/ui/styledSSR.js +0 -93
  75. package/dist/esm/root/card/cardSSRView.js +0 -92
  76. package/dist/esm/root/ui/Breakpoint.js +0 -6
  77. package/dist/esm/root/ui/styledSSR.js +0 -76
  78. package/dist/types/root/card/cardSSRView.d.ts +0 -13
  79. package/dist/types/root/ui/Breakpoint.d.ts +0 -4
  80. package/dist/types/root/ui/styledSSR.d.ts +0 -16
@@ -1,129 +1,69 @@
1
- import _regeneratorRuntime from "@babel/runtime/regenerator";
2
- import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
3
- import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
4
- import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
5
- import _createClass from "@babel/runtime/helpers/createClass";
6
- import _assertThisInitialized from "@babel/runtime/helpers/assertThisInitialized";
7
- import _inherits from "@babel/runtime/helpers/inherits";
8
- import _possibleConstructorReturn from "@babel/runtime/helpers/possibleConstructorReturn";
9
- import _getPrototypeOf from "@babel/runtime/helpers/getPrototypeOf";
10
- import _defineProperty from "@babel/runtime/helpers/defineProperty";
11
-
12
- 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); }; }
13
-
14
- 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; } }
15
-
16
- import React from 'react';
1
+ import _extends from "@babel/runtime/helpers/extends";
2
+ import React, { useContext } from 'react';
3
+ import { useMemoizeFeatureFlags } from '@atlaskit/media-common';
4
+ import Loadable from 'react-loadable';
17
5
  import { CardLoading } from '../..';
18
-
19
- var CardLoader = /*#__PURE__*/function (_React$PureComponent) {
20
- _inherits(CardLoader, _React$PureComponent);
21
-
22
- var _super = _createSuper(CardLoader);
23
-
24
- function CardLoader() {
25
- var _this;
26
-
27
- _classCallCheck(this, CardLoader);
28
-
29
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
30
- args[_key] = arguments[_key];
31
- }
32
-
33
- _this = _super.call.apply(_super, [this].concat(args));
34
-
35
- _defineProperty(_assertThisInitialized(_this), "state", {
36
- Card: CardLoader.Card,
37
- MediaCardErrorBoundary: CardLoader.MediaCardErrorBoundary
6
+ var MediaCardContext = /*#__PURE__*/React.createContext({});
7
+
8
+ var CardLoadingWithContext = function CardLoadingWithContext() {
9
+ var props = useContext(MediaCardContext);
10
+ return /*#__PURE__*/React.createElement(CardLoading, props);
11
+ };
12
+
13
+ var MediaCard = Loadable({
14
+ loader: function loader() {
15
+ return import(
16
+ /* webpackChunkName: "@atlaskit-internal_media-card" */
17
+ './index').then(function (mod) {
18
+ return mod.Card;
38
19
  });
39
-
40
- return _this;
20
+ },
21
+ loading: function loading() {
22
+ return /*#__PURE__*/React.createElement(CardLoadingWithContext, null);
41
23
  }
42
-
43
- _createClass(CardLoader, [{
44
- key: "componentDidMount",
45
- value: function () {
46
- var _componentDidMount = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
47
- var _yield$Promise$all, _yield$Promise$all2, mediaClient, cardModule, mediaCardErrorBoundaryModule;
48
-
49
- return _regeneratorRuntime.wrap(function _callee$(_context) {
50
- while (1) {
51
- switch (_context.prev = _context.next) {
52
- case 0:
53
- if (this.state.Card) {
54
- _context.next = 16;
55
- break;
56
- }
57
-
58
- _context.prev = 1;
59
- _context.next = 4;
60
- return Promise.all([import(
61
- /* webpackChunkName: "@atlaskit-internal_media-client" */
62
- '@atlaskit/media-client'), import(
63
- /* webpackChunkName: "@atlaskit-internal_media-card" */
64
- './index'), import(
65
- /* webpackChunkName: "@atlaskit-internal_media-card-error-boundary" */
66
- '../media-card-analytics-error-boundary')]);
67
-
68
- case 4:
69
- _yield$Promise$all = _context.sent;
70
- _yield$Promise$all2 = _slicedToArray(_yield$Promise$all, 3);
71
- mediaClient = _yield$Promise$all2[0];
72
- cardModule = _yield$Promise$all2[1];
73
- mediaCardErrorBoundaryModule = _yield$Promise$all2[2];
74
- CardLoader.Card = mediaClient.withMediaClient(cardModule.Card, this.props.featureFlags);
75
- CardLoader.MediaCardErrorBoundary = mediaCardErrorBoundaryModule.default;
76
- this.setState({
77
- Card: CardLoader.Card,
78
- MediaCardErrorBoundary: CardLoader.MediaCardErrorBoundary
79
- });
80
- _context.next = 16;
81
- break;
82
-
83
- case 14:
84
- _context.prev = 14;
85
- _context.t0 = _context["catch"](1);
86
-
87
- case 16:
88
- case "end":
89
- return _context.stop();
90
- }
91
- }
92
- }, _callee, this, [[1, 14]]);
93
- }));
94
-
95
- function componentDidMount() {
96
- return _componentDidMount.apply(this, arguments);
97
- }
98
-
99
- return componentDidMount;
100
- }()
101
- }, {
102
- key: "render",
103
- value: function render() {
104
- var _this$props = this.props,
105
- dimensions = _this$props.dimensions,
106
- testId = _this$props.testId,
107
- featureFlags = _this$props.featureFlags;
108
- var _this$state = this.state,
109
- Card = _this$state.Card,
110
- MediaCardErrorBoundary = _this$state.MediaCardErrorBoundary;
111
-
112
- if (!Card || !MediaCardErrorBoundary) {
113
- return /*#__PURE__*/React.createElement(CardLoading, {
114
- testId: testId,
115
- dimensions: dimensions,
116
- featureFlags: featureFlags
117
- });
118
- }
119
-
120
- return /*#__PURE__*/React.createElement(MediaCardErrorBoundary, null, /*#__PURE__*/React.createElement(Card, this.props));
121
- }
122
- }]);
123
-
124
- return CardLoader;
125
- }(React.PureComponent);
126
-
127
- _defineProperty(CardLoader, "displayName", 'AsyncCard');
128
-
129
- export { CardLoader as default };
24
+ });
25
+ var MediaCardErrorBoundary = Loadable({
26
+ loader: function loader() {
27
+ return import(
28
+ /* webpackChunkName: "@atlaskit-internal_media-card-error-boundary" */
29
+ '../media-card-analytics-error-boundary').then(function (mod) {
30
+ return mod.default;
31
+ });
32
+ },
33
+ loading: function loading() {
34
+ return /*#__PURE__*/React.createElement(CardLoadingWithContext, null);
35
+ }
36
+ });
37
+ var MediaCardWithMediaClient = Loadable({
38
+ loader: function loader() {
39
+ return import(
40
+ /* webpackChunkName: "@atlaskit-internal_media-client" */
41
+ '@atlaskit/media-client');
42
+ },
43
+ loading: function loading() {
44
+ return /*#__PURE__*/React.createElement(CardLoadingWithContext, null);
45
+ },
46
+ render: function render(loaded, props) {
47
+ return /*#__PURE__*/React.createElement(CardWithMediaClient, _extends({}, props, {
48
+ withMediaClient: loaded.withMediaClient
49
+ }));
50
+ }
51
+ });
52
+
53
+ var CardWithMediaClient = function CardWithMediaClient(props) {
54
+ var withMediaClient = props.withMediaClient,
55
+ featureFlags = props.featureFlags;
56
+ var memoizedFeatureFlags = useMemoizeFeatureFlags(featureFlags);
57
+ var Card = React.useMemo(function () {
58
+ return withMediaClient(MediaCard, memoizedFeatureFlags);
59
+ }, [withMediaClient, memoizedFeatureFlags]);
60
+ return /*#__PURE__*/React.createElement(MediaCardErrorBoundary, null, /*#__PURE__*/React.createElement(Card, props));
61
+ };
62
+
63
+ var CardLoader = function CardLoader(props) {
64
+ return /*#__PURE__*/React.createElement(MediaCardContext.Provider, {
65
+ value: props
66
+ }, /*#__PURE__*/React.createElement(MediaCardWithMediaClient, props));
67
+ };
68
+
69
+ export default CardLoader;
@@ -10,7 +10,7 @@ import { isPreviewableFileState, addFileAttrsToUrl } from '@atlaskit/media-clien
10
10
  import { isMimeTypeSupportedByBrowser } from '@atlaskit/media-common';
11
11
  import cardPreviewCache from './cache';
12
12
  import { getCardPreviewFromFilePreview, getCardPreviewFromBackend } from './helpers';
13
- import { MediaCardError, isUnsupportedLocalPreviewError } from '../../../errors';
13
+ import { MediaCardError, SsrPreviewError, isUnsupportedLocalPreviewError } from '../../../errors';
14
14
  import { isBigger } from '../../../utils/dimensionComparer';
15
15
  import { extractFilePreviewStatus, isPreviewableStatus } from './filePreviewStatus';
16
16
  export { getCardPreviewFromFilePreview, getCardPreviewFromBackend, isSupportedLocalPreview } from './helpers';
@@ -38,6 +38,14 @@ var extendAndCachePreview = function extendAndCachePreview(id, dimensions, previ
38
38
  source = 'cache-remote';
39
39
  break;
40
40
 
41
+ case 'ssr-server':
42
+ source = 'cache-ssr-server';
43
+ break;
44
+
45
+ case 'ssr-client':
46
+ source = 'cache-ssr-client';
47
+ break;
48
+
41
49
  default:
42
50
  source = preview.source;
43
51
  } // We want to embed some meta context into dataURI for Copy/Paste to work.
@@ -67,7 +75,7 @@ var extendAndCachePreview = function extendAndCachePreview(id, dimensions, previ
67
75
 
68
76
  export var getCardPreview = /*#__PURE__*/function () {
69
77
  var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(_ref) {
70
- var mediaClient, id, _ref$dimensions, dimensions, filePreview, onLocalPreviewError, isRemotePreviewReady, imageUrlParams, mediaBlobUrlAttrs, cachedPreview, localPreview, remotePreview;
78
+ var mediaClient, id, _ref$dimensions, dimensions, filePreview, onLocalPreviewError, isRemotePreviewReady, imageUrlParams, mediaBlobUrlAttrs, cachedPreview, localPreview;
71
79
 
72
80
  return _regeneratorRuntime.wrap(function _callee$(_context) {
73
81
  while (1) {
@@ -141,14 +149,9 @@ export var getCardPreview = /*#__PURE__*/function () {
141
149
  throw new MediaCardError('remote-preview-not-ready');
142
150
 
143
151
  case 19:
144
- _context.next = 21;
145
- return getCardPreviewFromBackend(mediaClient, id, imageUrlParams);
146
-
147
- case 21:
148
- remotePreview = _context.sent;
149
- return _context.abrupt("return", extendAndCachePreview(id, dimensions, remotePreview, mediaBlobUrlAttrs));
152
+ return _context.abrupt("return", fetchAndCacheRemotePreview(mediaClient, id, dimensions, imageUrlParams, mediaBlobUrlAttrs));
150
153
 
151
- case 23:
154
+ case 20:
152
155
  case "end":
153
156
  return _context.stop();
154
157
  }
@@ -171,4 +174,63 @@ export var shouldResolvePreview = function shouldResolvePreview(_ref3) {
171
174
  var statusIsPreviewable = isPreviewableStatus(status, extractFilePreviewStatus(fileState, isBannedLocalPreview, featureFlags));
172
175
  var dimensionsAreBigger = isBigger(prevDimensions, dimensions);
173
176
  return statusIsPreviewable && (!hasCardPreview || dimensionsAreBigger);
174
- };
177
+ };
178
+ export var getSSRCardPreview = function getSSRCardPreview(ssr, mediaClient, id, params, mediaBlobUrlAttrs) {
179
+ var dataURI;
180
+
181
+ try {
182
+ var rawDataURI = mediaClient.getImageUrlSync(id, params); // We want to embed some meta context into dataURI for Copy/Paste to work.
183
+
184
+ dataURI = mediaBlobUrlAttrs ? addFileAttrsToUrl(rawDataURI, mediaBlobUrlAttrs) : rawDataURI;
185
+ var source = ssr === 'client' ? 'ssr-client' : 'ssr-server';
186
+ return {
187
+ dataURI: dataURI,
188
+ source: source,
189
+ orientation: 1
190
+ };
191
+ } catch (e) {
192
+ var reason = ssr === 'server' ? 'ssr-server-uri' : 'ssr-client-uri';
193
+ throw new SsrPreviewError(reason, e);
194
+ }
195
+ };
196
+ export var isLocalPreview = function isLocalPreview(preview) {
197
+ var localSources = ['local', 'cache-local'];
198
+ return localSources.includes(preview.source);
199
+ };
200
+ export var isSSRPreview = function isSSRPreview(preview) {
201
+ return isSSRClientPreview(preview) || isSSRServerPreview(preview);
202
+ };
203
+ export var isSSRServerPreview = function isSSRServerPreview(preview) {
204
+ var ssrClientSources = ['ssr-server', 'cache-ssr-server'];
205
+ return ssrClientSources.includes(preview.source);
206
+ };
207
+ export var isSSRClientPreview = function isSSRClientPreview(preview) {
208
+ var ssrClientSources = ['ssr-client', 'cache-ssr-client'];
209
+ return ssrClientSources.includes(preview.source);
210
+ };
211
+ export var fetchAndCacheRemotePreview = /*#__PURE__*/function () {
212
+ var _ref4 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2(mediaClient, id, dimensions, params, mediaBlobUrlAttrs) {
213
+ var remotePreview;
214
+ return _regeneratorRuntime.wrap(function _callee2$(_context2) {
215
+ while (1) {
216
+ switch (_context2.prev = _context2.next) {
217
+ case 0:
218
+ _context2.next = 2;
219
+ return getCardPreviewFromBackend(mediaClient, id, params);
220
+
221
+ case 2:
222
+ remotePreview = _context2.sent;
223
+ return _context2.abrupt("return", extendAndCachePreview(id, dimensions, remotePreview, mediaBlobUrlAttrs));
224
+
225
+ case 4:
226
+ case "end":
227
+ return _context2.stop();
228
+ }
229
+ }
230
+ }, _callee2);
231
+ }));
232
+
233
+ return function fetchAndCacheRemotePreview(_x2, _x3, _x4, _x5, _x6) {
234
+ return _ref4.apply(this, arguments);
235
+ };
236
+ }();