@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.
- package/CHANGELOG.md +22 -0
- package/dist/cjs/errors.js +26 -6
- package/dist/cjs/root/card/cardLoader.js +66 -124
- package/dist/cjs/root/card/getCardPreview/index.js +90 -10
- package/dist/cjs/root/card/index.js +154 -84
- package/dist/cjs/root/cardView.js +41 -54
- package/dist/cjs/root/inline/mediaInlineCard.js +10 -5
- package/dist/cjs/root/ui/common.js +11 -5
- package/dist/cjs/root/ui/imageRenderer/imageRenderer.js +6 -2
- package/dist/cjs/root/ui/loadingRateLimited/loadingRateLimited.js +2 -2
- package/dist/cjs/root/ui/progressBar/progressBar.js +2 -2
- package/dist/cjs/root/ui/progressBar/styled.js +1 -3
- package/dist/cjs/root/ui/styled.js +80 -17
- package/dist/cjs/root/ui/titleBox/styled.js +1 -3
- package/dist/cjs/utils/cardActions/cardActionsDropdownMenu.js +16 -9
- package/dist/cjs/version.json +1 -1
- package/dist/es2019/errors.js +9 -1
- package/dist/es2019/root/card/cardLoader.js +47 -53
- package/dist/es2019/root/card/getCardPreview/index.js +45 -3
- package/dist/es2019/root/card/index.js +87 -20
- package/dist/es2019/root/cardView.js +26 -40
- package/dist/es2019/root/inline/mediaInlineCard.js +10 -5
- package/dist/es2019/root/ui/common.js +7 -1
- package/dist/es2019/root/ui/imageRenderer/imageRenderer.js +6 -2
- package/dist/es2019/root/ui/loadingRateLimited/loadingRateLimited.js +1 -1
- package/dist/es2019/root/ui/progressBar/progressBar.js +1 -1
- package/dist/es2019/root/ui/progressBar/styled.js +1 -2
- package/dist/es2019/root/ui/styled.js +64 -3
- package/dist/es2019/root/ui/titleBox/styled.js +1 -2
- package/dist/es2019/utils/cardActions/cardActionsDropdownMenu.js +8 -4
- package/dist/es2019/version.json +1 -1
- package/dist/esm/errors.js +23 -5
- package/dist/esm/root/card/cardLoader.js +66 -126
- package/dist/esm/root/card/getCardPreview/index.js +72 -10
- package/dist/esm/root/card/index.js +156 -85
- package/dist/esm/root/cardView.js +40 -52
- package/dist/esm/root/inline/mediaInlineCard.js +10 -5
- package/dist/esm/root/ui/common.js +7 -1
- package/dist/esm/root/ui/imageRenderer/imageRenderer.js +6 -2
- package/dist/esm/root/ui/loadingRateLimited/loadingRateLimited.js +1 -1
- package/dist/esm/root/ui/progressBar/progressBar.js +1 -1
- package/dist/esm/root/ui/progressBar/styled.js +1 -2
- package/dist/esm/root/ui/styled.js +61 -13
- package/dist/esm/root/ui/titleBox/styled.js +1 -2
- package/dist/esm/utils/cardActions/cardActionsDropdownMenu.js +16 -9
- package/dist/esm/version.json +1 -1
- package/dist/types/errors.d.ts +9 -3
- package/dist/types/index.d.ts +2 -1
- package/dist/types/root/card/cardLoader.d.ts +4 -18
- package/dist/types/root/card/getCardPreview/index.d.ts +7 -1
- package/dist/types/root/card/index.d.ts +2 -0
- package/dist/types/root/cardView.d.ts +3 -1
- package/dist/types/root/ui/common.d.ts +4 -1
- package/dist/types/root/ui/iconWrapper/styled.d.ts +1 -1
- package/dist/types/root/ui/imageRenderer/imageRenderer.d.ts +3 -2
- package/dist/types/root/ui/loadingRateLimited/loadingRateLimited.d.ts +1 -1
- package/dist/types/root/ui/loadingRateLimited/styled.d.ts +1 -1
- package/dist/types/root/ui/progressBar/progressBar.d.ts +1 -1
- package/dist/types/root/ui/progressBar/styled.d.ts +1 -1
- package/dist/types/root/ui/styled.d.ts +10 -3
- package/dist/types/root/ui/titleBox/failedTitleBox.d.ts +1 -1
- package/dist/types/root/ui/titleBox/styled.d.ts +1 -1
- package/dist/types/root/ui/titleBox/titleBox.d.ts +1 -1
- package/dist/types/types.d.ts +1 -1
- package/example-helpers/developmentUseMessage.tsx +14 -0
- package/example-helpers/index.tsx +34 -4
- package/example-helpers/selectableCard.tsx +2 -1
- package/package.json +8 -5
- package/dist/cjs/root/card/cardSSRView.js +0 -114
- package/dist/cjs/root/ui/Breakpoint.js +0 -13
- package/dist/cjs/root/ui/styledSSR.js +0 -108
- package/dist/es2019/root/card/cardSSRView.js +0 -93
- package/dist/es2019/root/ui/Breakpoint.js +0 -6
- package/dist/es2019/root/ui/styledSSR.js +0 -93
- package/dist/esm/root/card/cardSSRView.js +0 -92
- package/dist/esm/root/ui/Breakpoint.js +0 -6
- package/dist/esm/root/ui/styledSSR.js +0 -76
- package/dist/types/root/card/cardSSRView.d.ts +0 -13
- package/dist/types/root/ui/Breakpoint.d.ts +0 -4
- package/dist/types/root/ui/styledSSR.d.ts +0 -16
|
@@ -29,7 +29,9 @@ var ImageRenderer = function ImageRenderer(_ref) {
|
|
|
29
29
|
onImageLoad = _ref.onImageLoad,
|
|
30
30
|
onImageError = _ref.onImageError,
|
|
31
31
|
onDisplayImage = _ref.onDisplayImage,
|
|
32
|
-
mediaType = _ref.mediaType
|
|
32
|
+
mediaType = _ref.mediaType,
|
|
33
|
+
nativeLazyLoad = _ref.nativeLazyLoad,
|
|
34
|
+
forceSyncDisplay = _ref.forceSyncDisplay;
|
|
33
35
|
(0, _react.useEffect)(function () {
|
|
34
36
|
// TODO: trigger accordingly with the succeeded event. This could be a breaking change
|
|
35
37
|
if (mediaType === 'image' && onDisplayImage) {
|
|
@@ -41,7 +43,9 @@ var ImageRenderer = function ImageRenderer(_ref) {
|
|
|
41
43
|
alt: alt,
|
|
42
44
|
previewOrientation: previewOrientation,
|
|
43
45
|
onImageLoad: onImageLoad,
|
|
44
|
-
onImageError: onImageError
|
|
46
|
+
onImageError: onImageError,
|
|
47
|
+
loading: nativeLazyLoad ? 'lazy' : undefined,
|
|
48
|
+
forceSyncDisplay: forceSyncDisplay
|
|
45
49
|
}, (0, _resizeModeToMediaImageProps.resizeModeToMediaImageProps)(resizeMode)));
|
|
46
50
|
};
|
|
47
51
|
|
|
@@ -17,11 +17,11 @@ var _mediaUi = require("@atlaskit/media-ui");
|
|
|
17
17
|
|
|
18
18
|
var _reactIntl = require("react-intl");
|
|
19
19
|
|
|
20
|
-
var
|
|
20
|
+
var _common = require("../common");
|
|
21
21
|
|
|
22
22
|
var LoadingRateLimited = function LoadingRateLimited(_ref) {
|
|
23
23
|
var _ref$breakpoint = _ref.breakpoint,
|
|
24
|
-
breakpoint = _ref$breakpoint === void 0 ?
|
|
24
|
+
breakpoint = _ref$breakpoint === void 0 ? _common.Breakpoint.SMALL : _ref$breakpoint,
|
|
25
25
|
_ref$positionBottom = _ref.positionBottom,
|
|
26
26
|
positionBottom = _ref$positionBottom === void 0 ? true : _ref$positionBottom;
|
|
27
27
|
return /*#__PURE__*/_react.default.createElement(_styled.LoadingRateLimitedContainer, null, /*#__PURE__*/_react.default.createElement(_styled.WarningIconWrapper, null, _errorIcon.errorIcon), /*#__PURE__*/_react.default.createElement(_styled.LoadingRateLimitedTextWrapper, {
|
|
@@ -11,12 +11,12 @@ var _react = _interopRequireDefault(require("react"));
|
|
|
11
11
|
|
|
12
12
|
var _styled = require("./styled");
|
|
13
13
|
|
|
14
|
-
var
|
|
14
|
+
var _common = require("../common");
|
|
15
15
|
|
|
16
16
|
var ProgressBar = function ProgressBar(_ref) {
|
|
17
17
|
var progress = _ref.progress,
|
|
18
18
|
_ref$breakpoint = _ref.breakpoint,
|
|
19
|
-
breakpoint = _ref$breakpoint === void 0 ?
|
|
19
|
+
breakpoint = _ref$breakpoint === void 0 ? _common.Breakpoint.SMALL : _ref$breakpoint,
|
|
20
20
|
_ref$positionBottom = _ref.positionBottom,
|
|
21
21
|
positionBottom = _ref$positionBottom === void 0 ? false : _ref$positionBottom;
|
|
22
22
|
var normalizedProgress = Math.min(1, Math.max(0, progress || 0)) * 100;
|
|
@@ -20,8 +20,6 @@ var _colors = require("@atlaskit/theme/colors");
|
|
|
20
20
|
|
|
21
21
|
var _common = require("../common");
|
|
22
22
|
|
|
23
|
-
var _Breakpoint = require("../Breakpoint");
|
|
24
|
-
|
|
25
23
|
var _templateObject;
|
|
26
24
|
|
|
27
25
|
var height = 3;
|
|
@@ -39,7 +37,7 @@ var largeSizeSettings = {
|
|
|
39
37
|
|
|
40
38
|
function generateResponsiveStyles(breakpoint, positionBottom) {
|
|
41
39
|
var multiplier = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;
|
|
42
|
-
var setting = breakpoint ===
|
|
40
|
+
var setting = breakpoint === _common.Breakpoint.SMALL ? smallSizeSettings : largeSizeSettings;
|
|
43
41
|
var marginPositionBottom = _common.responsiveSettings[breakpoint].titleBox.verticalPadding;
|
|
44
42
|
var marginBottom = setting.marginBottom * multiplier + (positionBottom ? marginPositionBottom : (0, _common.getTitleBoxHeight)(breakpoint));
|
|
45
43
|
return "\n bottom: ".concat(marginBottom, "px\n ");
|
|
@@ -5,38 +5,91 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", {
|
|
6
6
|
value: true
|
|
7
7
|
});
|
|
8
|
-
exports.NewFileExperienceWrapper = void 0;
|
|
8
|
+
exports.CardImageContainer = exports.NewFileExperienceWrapper = exports.calcBreakpointSize = void 0;
|
|
9
9
|
|
|
10
10
|
var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
|
|
11
11
|
|
|
12
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
13
|
+
|
|
12
14
|
var _styledComponents = _interopRequireDefault(require("styled-components"));
|
|
13
15
|
|
|
14
16
|
var _getCSSUnitValue = require("../../utils/getCSSUnitValue");
|
|
15
17
|
|
|
16
18
|
var _cardDimensions = require("../../utils/cardDimensions");
|
|
17
19
|
|
|
20
|
+
var _constants = require("@atlaskit/theme/constants");
|
|
21
|
+
|
|
22
|
+
var _mediaUi = require("@atlaskit/media-ui");
|
|
23
|
+
|
|
24
|
+
var _colors = require("@atlaskit/theme/colors");
|
|
25
|
+
|
|
26
|
+
var _consts = require("@atlaskit/editor-shared-styles/consts");
|
|
27
|
+
|
|
18
28
|
var _selection = require("@atlaskit/editor-shared-styles/selection");
|
|
19
29
|
|
|
30
|
+
var _styles = require("../../styles");
|
|
31
|
+
|
|
20
32
|
var _styled = require("./tickBox/styled");
|
|
21
33
|
|
|
22
|
-
var _styled2 = require("./
|
|
34
|
+
var _styled2 = require("./blanket/styled");
|
|
23
35
|
|
|
24
|
-
var _styled3 = require("./
|
|
36
|
+
var _styled3 = require("./actionsBar/styled");
|
|
25
37
|
|
|
26
|
-
var
|
|
38
|
+
var _styled4 = require("./playButton/styled");
|
|
27
39
|
|
|
28
|
-
var
|
|
40
|
+
var _common = require("./common");
|
|
41
|
+
|
|
42
|
+
var _templateObject, _templateObject2;
|
|
43
|
+
|
|
44
|
+
var breakpointSizes = [[_common.Breakpoint.SMALL, 599], [_common.Breakpoint.LARGE, Infinity]];
|
|
45
|
+
|
|
46
|
+
var calcBreakpointSize = function calcBreakpointSize() {
|
|
47
|
+
var wrapperWidth = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
|
|
48
|
+
|
|
49
|
+
var _ref = breakpointSizes.find(function (_ref3) {
|
|
50
|
+
var _ref4 = (0, _slicedToArray2.default)(_ref3, 2),
|
|
51
|
+
_breakpoint = _ref4[0],
|
|
52
|
+
limit = _ref4[1];
|
|
53
|
+
|
|
54
|
+
return wrapperWidth <= limit;
|
|
55
|
+
}) || [_common.Breakpoint.SMALL],
|
|
56
|
+
_ref2 = (0, _slicedToArray2.default)(_ref, 1),
|
|
57
|
+
breakpoint = _ref2[0];
|
|
58
|
+
|
|
59
|
+
return breakpoint;
|
|
60
|
+
};
|
|
61
|
+
|
|
62
|
+
exports.calcBreakpointSize = calcBreakpointSize;
|
|
63
|
+
|
|
64
|
+
var generateResponsiveStyles = function generateResponsiveStyles() {
|
|
65
|
+
var breakpoint = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _common.Breakpoint.SMALL;
|
|
66
|
+
var setting = _common.responsiveSettings[breakpoint];
|
|
67
|
+
return "\n font-size: ".concat(setting.fontSize, "px;\n line-height: ").concat(setting.lineHeight, "px;\n ");
|
|
68
|
+
};
|
|
29
69
|
|
|
30
70
|
var getWrapperDimensions = function getWrapperDimensions(dimensions, appearance) {
|
|
31
|
-
var
|
|
32
|
-
width =
|
|
33
|
-
height =
|
|
71
|
+
var _ref5 = dimensions || {},
|
|
72
|
+
width = _ref5.width,
|
|
73
|
+
height = _ref5.height;
|
|
34
74
|
|
|
35
75
|
var _getDefaultCardDimens = (0, _cardDimensions.getDefaultCardDimensions)(appearance),
|
|
36
76
|
defaultWidth = _getDefaultCardDimens.width,
|
|
37
77
|
defaultHeight = _getDefaultCardDimens.height;
|
|
38
78
|
|
|
39
79
|
return "\n width: ".concat((0, _getCSSUnitValue.getCSSUnitValue)(width || defaultWidth), ";\n max-width: 100%;\n height: ").concat((0, _getCSSUnitValue.getCSSUnitValue)(height || defaultHeight), ";\n max-height: 100%;\n ");
|
|
80
|
+
}; // This is a trick to simulate the blue border without affecting the dimensions.
|
|
81
|
+
// CSS outline has no 'radius', therefore we can't achieve the same effect with it
|
|
82
|
+
|
|
83
|
+
|
|
84
|
+
var getWrapperShadow = function getWrapperShadow(disableOverlay, selected) {
|
|
85
|
+
var withOverlayShadow = !disableOverlay ? "0 1px 1px ".concat(_colors.N60A, ", 0 0 1px 0 ").concat(_colors.N60A) : '';
|
|
86
|
+
var selectedShadow = selected ? _consts.akEditorSelectedBoxShadow : '';
|
|
87
|
+
var shadow = [selectedShadow, withOverlayShadow].filter(Boolean).join(', ');
|
|
88
|
+
return shadow ? "box-shadow: ".concat(shadow, ";") : '';
|
|
89
|
+
};
|
|
90
|
+
|
|
91
|
+
var getCursorStyle = function getCursorStyle(shouldUsePointerCursor) {
|
|
92
|
+
return "cursor: ".concat(shouldUsePointerCursor ? 'pointer' : 'default', ";");
|
|
40
93
|
};
|
|
41
94
|
|
|
42
95
|
var getClickablePlayButtonStyles = function getClickablePlayButtonStyles(isPlayButtonClickable) {
|
|
@@ -44,7 +97,7 @@ var getClickablePlayButtonStyles = function getClickablePlayButtonStyles(isPlayB
|
|
|
44
97
|
return '';
|
|
45
98
|
}
|
|
46
99
|
|
|
47
|
-
return "\n &:hover .".concat(
|
|
100
|
+
return "\n &:hover .".concat(_styled4.playButtonClassName, " {\n ").concat(_styled4.fixedPlayButtonStyles, "\n }\n ");
|
|
48
101
|
};
|
|
49
102
|
|
|
50
103
|
var getSelectableTickBoxStyles = function getSelectableTickBoxStyles(isTickBoxSelectable) {
|
|
@@ -55,13 +108,23 @@ var getSelectableTickBoxStyles = function getSelectableTickBoxStyles(isTickBoxSe
|
|
|
55
108
|
return "\n &:hover .".concat(_styled.tickBoxClassName, " {\n ").concat(_styled.tickboxFixedStyles, "\n }\n ");
|
|
56
109
|
};
|
|
57
110
|
|
|
58
|
-
var NewFileExperienceWrapper =
|
|
59
|
-
var
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
111
|
+
var NewFileExperienceWrapper = _styledComponents.default.div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n ", "\n"])), function (_ref6) {
|
|
112
|
+
var breakpoint = _ref6.breakpoint,
|
|
113
|
+
dimensions = _ref6.dimensions,
|
|
114
|
+
appearance = _ref6.appearance,
|
|
115
|
+
shouldUsePointerCursor = _ref6.shouldUsePointerCursor,
|
|
116
|
+
disableOverlay = _ref6.disableOverlay,
|
|
117
|
+
displayBackground = _ref6.displayBackground,
|
|
118
|
+
selected = _ref6.selected,
|
|
119
|
+
isPlayButtonClickable = _ref6.isPlayButtonClickable,
|
|
120
|
+
isTickBoxSelectable = _ref6.isTickBoxSelectable,
|
|
121
|
+
shouldDisplayTooltip = _ref6.shouldDisplayTooltip;
|
|
122
|
+
return "\n ".concat((0, _styles.transition)(), "\n box-sizing: border-box;\n * {\n box-sizing: border-box;\n }\n position: relative;\n font-family: ").concat((0, _constants.fontFamily)(), ";\n ").concat(getWrapperDimensions(dimensions, appearance), "\n ").concat(displayBackground ? "background-color: ".concat(_colors.N20, ";") : '', "\n ").concat(_mediaUi.borderRadius, "\n ").concat(getCursorStyle(shouldUsePointerCursor), "\n ").concat(getWrapperShadow(disableOverlay, selected), "\n ").concat(generateResponsiveStyles(breakpoint), "\n ").concat(_selection.hideNativeBrowserTextSelectionStyles, "\n\n /* We use classnames from here exceptionally to be able to handle styles when the Card is on hover */\n ").concat(getClickablePlayButtonStyles(isPlayButtonClickable), "\n ").concat(getSelectableTickBoxStyles(isTickBoxSelectable), "\n &:hover .").concat(_styled2.blanketClassName, " {\n ").concat(_styled2.fixedBlanketStyles, "\n }\n\n &:hover .").concat(_styled3.actionsBarClassName, " {\n ").concat(_styled3.fixedActionBarStyles, "\n }\n\n /* Tooltip does not support percentage dimensions. We enforce them here */\n ").concat(shouldDisplayTooltip ? "> div { ".concat(getWrapperDimensions(dimensions, appearance), " }") : '', "\n");
|
|
65
123
|
});
|
|
124
|
+
|
|
66
125
|
exports.NewFileExperienceWrapper = NewFileExperienceWrapper;
|
|
67
|
-
NewFileExperienceWrapper.displayName = 'NewFileExperienceWrapper';
|
|
126
|
+
NewFileExperienceWrapper.displayName = 'NewFileExperienceWrapper';
|
|
127
|
+
|
|
128
|
+
var CardImageContainer = _styledComponents.default.div(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2.default)(["\n display: flex;\n position: relative;\n max-width: 100%;\n width: 100%;\n height: 100%;\n max-height: 100%;\n overflow: hidden;\n ", "\n"])), _mediaUi.borderRadius);
|
|
129
|
+
|
|
130
|
+
exports.CardImageContainer = CardImageContainer;
|
|
@@ -13,8 +13,6 @@ var _styledComponents = _interopRequireDefault(require("styled-components"));
|
|
|
13
13
|
|
|
14
14
|
var _common = require("../common");
|
|
15
15
|
|
|
16
|
-
var _Breakpoint = require("../Breakpoint");
|
|
17
|
-
|
|
18
16
|
var _colors = require("@atlaskit/theme/colors");
|
|
19
17
|
|
|
20
18
|
var _mixins = require("../../../styles/mixins");
|
|
@@ -22,7 +20,7 @@ var _mixins = require("../../../styles/mixins");
|
|
|
22
20
|
var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5;
|
|
23
21
|
|
|
24
22
|
var generateResponsiveStyles = function generateResponsiveStyles() {
|
|
25
|
-
var breakpoint = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] :
|
|
23
|
+
var breakpoint = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _common.Breakpoint.SMALL;
|
|
26
24
|
var setting = _common.responsiveSettings[breakpoint];
|
|
27
25
|
var verticalPadding = setting.titleBox.verticalPadding;
|
|
28
26
|
var horizontalPadding = setting.titleBox.horizontalPadding;
|
|
@@ -9,6 +9,8 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
9
9
|
});
|
|
10
10
|
exports.CardActionsDropdownMenu = void 0;
|
|
11
11
|
|
|
12
|
+
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
|
13
|
+
|
|
12
14
|
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
13
15
|
|
|
14
16
|
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
@@ -103,16 +105,21 @@ var CardActionsDropdownMenu = /*#__PURE__*/function (_Component) {
|
|
|
103
105
|
|
|
104
106
|
if (actions.length > 0) {
|
|
105
107
|
return /*#__PURE__*/_react.default.createElement(_dropdownMenu.default, {
|
|
106
|
-
|
|
108
|
+
testId: "media-card-actions-menu",
|
|
107
109
|
onOpenChange: onOpenChange,
|
|
108
|
-
trigger:
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
110
|
+
trigger: function trigger(_ref) {
|
|
111
|
+
var triggerRef = _ref.triggerRef,
|
|
112
|
+
providedProps = (0, _objectWithoutProperties2.default)(_ref, ["triggerRef"]);
|
|
113
|
+
return /*#__PURE__*/_react.default.createElement(CardActionButtonWithAnalytics, (0, _extends2.default)({
|
|
114
|
+
variant: triggerVariant,
|
|
115
|
+
style: {
|
|
116
|
+
color: triggerColor
|
|
117
|
+
},
|
|
118
|
+
ref: triggerRef
|
|
119
|
+
}, providedProps), /*#__PURE__*/_react.default.createElement(_more.default, {
|
|
120
|
+
label: "more"
|
|
121
|
+
}));
|
|
122
|
+
}
|
|
116
123
|
}, /*#__PURE__*/_react.default.createElement(_dropdownMenu.DropdownItemGroup, null, actions.map(createDropdownItemWithAnalytics)));
|
|
117
124
|
} else {
|
|
118
125
|
return null;
|
package/dist/cjs/version.json
CHANGED
package/dist/es2019/errors.js
CHANGED
|
@@ -27,6 +27,14 @@ export class RemotePreviewError extends MediaCardError {
|
|
|
27
27
|
this.secondaryError = secondaryError;
|
|
28
28
|
}
|
|
29
29
|
|
|
30
|
+
}
|
|
31
|
+
export class SsrPreviewError extends MediaCardError {
|
|
32
|
+
constructor(primaryReason, secondaryError) {
|
|
33
|
+
super(primaryReason, secondaryError);
|
|
34
|
+
this.primaryReason = primaryReason;
|
|
35
|
+
this.secondaryError = secondaryError;
|
|
36
|
+
}
|
|
37
|
+
|
|
30
38
|
}
|
|
31
39
|
export const getImageLoadPrimaryReason = source => {
|
|
32
40
|
switch (source) {
|
|
@@ -68,4 +76,4 @@ export function isImageLoadError(err) {
|
|
|
68
76
|
// We can use this helper to ensure that the error handled is the type of MediaCardError if unsure
|
|
69
77
|
|
|
70
78
|
export const ensureMediaCardError = (primaryReason, error) => isMediaCardError(error) ? error : new MediaCardError(primaryReason, error);
|
|
71
|
-
export const isUploadError = error => error.primaryReason === 'upload';
|
|
79
|
+
export const isUploadError = error => error && error.primaryReason === 'upload';
|
|
@@ -1,59 +1,53 @@
|
|
|
1
|
-
import
|
|
2
|
-
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';
|
|
3
5
|
import { CardLoading } from '../..';
|
|
4
|
-
|
|
5
|
-
constructor(...args) {
|
|
6
|
-
super(...args);
|
|
6
|
+
const MediaCardContext = /*#__PURE__*/React.createContext({});
|
|
7
7
|
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
}
|
|
8
|
+
const CardLoadingWithContext = () => {
|
|
9
|
+
const props = useContext(MediaCardContext);
|
|
10
|
+
return /*#__PURE__*/React.createElement(CardLoading, props);
|
|
11
|
+
};
|
|
13
12
|
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
}
|
|
13
|
+
const MediaCard = Loadable({
|
|
14
|
+
loader: () => import(
|
|
15
|
+
/* webpackChunkName: "@atlaskit-internal_media-card" */
|
|
16
|
+
'./index').then(mod => mod.Card),
|
|
17
|
+
loading: () => /*#__PURE__*/React.createElement(CardLoadingWithContext, null)
|
|
18
|
+
});
|
|
19
|
+
const MediaCardErrorBoundary = Loadable({
|
|
20
|
+
loader: () => import(
|
|
21
|
+
/* webpackChunkName: "@atlaskit-internal_media-card-error-boundary" */
|
|
22
|
+
'../media-card-analytics-error-boundary').then(mod => mod.default),
|
|
23
|
+
loading: () => /*#__PURE__*/React.createElement(CardLoadingWithContext, null)
|
|
24
|
+
});
|
|
25
|
+
const MediaCardWithMediaClient = Loadable({
|
|
26
|
+
loader: () => import(
|
|
27
|
+
/* webpackChunkName: "@atlaskit-internal_media-client" */
|
|
28
|
+
'@atlaskit/media-client'),
|
|
29
|
+
loading: () => /*#__PURE__*/React.createElement(CardLoadingWithContext, null),
|
|
30
|
+
render: (loaded, props) => /*#__PURE__*/React.createElement(CardWithMediaClient, _extends({}, props, {
|
|
31
|
+
withMediaClient: loaded.withMediaClient
|
|
32
|
+
}))
|
|
33
|
+
});
|
|
34
34
|
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
35
|
+
const CardWithMediaClient = props => {
|
|
36
|
+
const {
|
|
37
|
+
withMediaClient,
|
|
38
|
+
featureFlags
|
|
39
|
+
} = props;
|
|
40
|
+
const memoizedFeatureFlags = useMemoizeFeatureFlags(featureFlags);
|
|
41
|
+
const Card = React.useMemo(() => {
|
|
42
|
+
return withMediaClient(MediaCard, memoizedFeatureFlags);
|
|
43
|
+
}, [withMediaClient, memoizedFeatureFlags]);
|
|
44
|
+
return /*#__PURE__*/React.createElement(MediaCardErrorBoundary, null, /*#__PURE__*/React.createElement(Card, props));
|
|
45
|
+
};
|
|
45
46
|
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
});
|
|
52
|
-
}
|
|
47
|
+
const CardLoader = props => {
|
|
48
|
+
return /*#__PURE__*/React.createElement(MediaCardContext.Provider, {
|
|
49
|
+
value: props
|
|
50
|
+
}, /*#__PURE__*/React.createElement(MediaCardWithMediaClient, props));
|
|
51
|
+
};
|
|
53
52
|
|
|
54
|
-
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
_defineProperty(CardLoader, "displayName", 'AsyncCard');
|
|
53
|
+
export default CardLoader;
|
|
@@ -2,7 +2,7 @@ import { isPreviewableFileState, addFileAttrsToUrl } from '@atlaskit/media-clien
|
|
|
2
2
|
import { isMimeTypeSupportedByBrowser } from '@atlaskit/media-common';
|
|
3
3
|
import cardPreviewCache from './cache';
|
|
4
4
|
import { getCardPreviewFromFilePreview, getCardPreviewFromBackend } from './helpers';
|
|
5
|
-
import { MediaCardError, isUnsupportedLocalPreviewError } from '../../../errors';
|
|
5
|
+
import { MediaCardError, SsrPreviewError, isUnsupportedLocalPreviewError } from '../../../errors';
|
|
6
6
|
import { isBigger } from '../../../utils/dimensionComparer';
|
|
7
7
|
import { extractFilePreviewStatus, isPreviewableStatus } from './filePreviewStatus';
|
|
8
8
|
export { getCardPreviewFromFilePreview, getCardPreviewFromBackend, isSupportedLocalPreview } from './helpers';
|
|
@@ -28,6 +28,14 @@ const extendAndCachePreview = (id, dimensions, preview, mediaBlobUrlAttrs) => {
|
|
|
28
28
|
source = 'cache-remote';
|
|
29
29
|
break;
|
|
30
30
|
|
|
31
|
+
case 'ssr-server':
|
|
32
|
+
source = 'cache-ssr-server';
|
|
33
|
+
break;
|
|
34
|
+
|
|
35
|
+
case 'ssr-client':
|
|
36
|
+
source = 'cache-ssr-client';
|
|
37
|
+
break;
|
|
38
|
+
|
|
31
39
|
default:
|
|
32
40
|
source = preview.source;
|
|
33
41
|
} // We want to embed some meta context into dataURI for Copy/Paste to work.
|
|
@@ -111,8 +119,7 @@ export const getCardPreview = async ({
|
|
|
111
119
|
throw new MediaCardError('remote-preview-not-ready');
|
|
112
120
|
}
|
|
113
121
|
|
|
114
|
-
|
|
115
|
-
return extendAndCachePreview(id, dimensions, remotePreview, mediaBlobUrlAttrs);
|
|
122
|
+
return fetchAndCacheRemotePreview(mediaClient, id, dimensions, imageUrlParams, mediaBlobUrlAttrs);
|
|
116
123
|
};
|
|
117
124
|
export const shouldResolvePreview = ({
|
|
118
125
|
status,
|
|
@@ -126,4 +133,39 @@ export const shouldResolvePreview = ({
|
|
|
126
133
|
const statusIsPreviewable = isPreviewableStatus(status, extractFilePreviewStatus(fileState, isBannedLocalPreview, featureFlags));
|
|
127
134
|
const dimensionsAreBigger = isBigger(prevDimensions, dimensions);
|
|
128
135
|
return statusIsPreviewable && (!hasCardPreview || dimensionsAreBigger);
|
|
136
|
+
};
|
|
137
|
+
export const getSSRCardPreview = (ssr, mediaClient, id, params, mediaBlobUrlAttrs) => {
|
|
138
|
+
let dataURI;
|
|
139
|
+
|
|
140
|
+
try {
|
|
141
|
+
const rawDataURI = mediaClient.getImageUrlSync(id, params); // We want to embed some meta context into dataURI for Copy/Paste to work.
|
|
142
|
+
|
|
143
|
+
dataURI = mediaBlobUrlAttrs ? addFileAttrsToUrl(rawDataURI, mediaBlobUrlAttrs) : rawDataURI;
|
|
144
|
+
const source = ssr === 'client' ? 'ssr-client' : 'ssr-server';
|
|
145
|
+
return {
|
|
146
|
+
dataURI,
|
|
147
|
+
source,
|
|
148
|
+
orientation: 1
|
|
149
|
+
};
|
|
150
|
+
} catch (e) {
|
|
151
|
+
const reason = ssr === 'server' ? 'ssr-server-uri' : 'ssr-client-uri';
|
|
152
|
+
throw new SsrPreviewError(reason, e);
|
|
153
|
+
}
|
|
154
|
+
};
|
|
155
|
+
export const isLocalPreview = preview => {
|
|
156
|
+
const localSources = ['local', 'cache-local'];
|
|
157
|
+
return localSources.includes(preview.source);
|
|
158
|
+
};
|
|
159
|
+
export const isSSRPreview = preview => isSSRClientPreview(preview) || isSSRServerPreview(preview);
|
|
160
|
+
export const isSSRServerPreview = preview => {
|
|
161
|
+
const ssrClientSources = ['ssr-server', 'cache-ssr-server'];
|
|
162
|
+
return ssrClientSources.includes(preview.source);
|
|
163
|
+
};
|
|
164
|
+
export const isSSRClientPreview = preview => {
|
|
165
|
+
const ssrClientSources = ['ssr-client', 'cache-ssr-client'];
|
|
166
|
+
return ssrClientSources.includes(preview.source);
|
|
167
|
+
};
|
|
168
|
+
export const fetchAndCacheRemotePreview = async (mediaClient, id, dimensions, params, mediaBlobUrlAttrs) => {
|
|
169
|
+
const remotePreview = await getCardPreviewFromBackend(mediaClient, id, params);
|
|
170
|
+
return extendAndCachePreview(id, dimensions, remotePreview, mediaBlobUrlAttrs);
|
|
129
171
|
};
|