@atlaskit/smart-card 21.1.4 → 22.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +61 -0
- package/dist/cjs/extractors/block/index.js +3 -2
- package/dist/cjs/extractors/common/actions/extractPreviewAction.js +12 -2
- package/dist/cjs/state/actions/index.js +54 -10
- package/dist/cjs/state/analytics/types.js +5 -0
- package/dist/cjs/state/analytics/useSmartLinkAnalytics.js +386 -109
- package/dist/cjs/state/hooks-external/useSmartLinkActions.js +12 -2
- package/dist/cjs/utils/analytics/analytics.js +239 -72
- package/dist/cjs/utils/analytics/index.js +32 -5
- package/dist/cjs/version.json +1 -1
- package/dist/cjs/view/BlockCard/actions/PreviewAction.js +1 -1
- package/dist/cjs/view/BlockCard/index.js +10 -0
- package/dist/cjs/view/CardWithUrl/component.js +26 -4
- package/dist/cjs/view/CardWithUrl/loader.js +6 -1
- package/dist/cjs/view/EmbedModal/components/size-experiment/index.js +41 -0
- package/dist/cjs/view/EmbedModal/components/size-experiment/types.js +5 -0
- package/dist/cjs/view/EmbedModal/index.js +7 -3
- package/dist/cjs/view/FlexibleCard/components/blocks/block/index.js +17 -3
- package/dist/cjs/view/FlexibleCard/components/blocks/preview-block/index.js +5 -2
- package/dist/cjs/view/FlexibleCard/components/common/atlaskit-icon/index.js +20 -8
- package/dist/cjs/view/FlexibleCard/components/common/image-icon/index.js +4 -2
- package/dist/cjs/view/FlexibleCard/components/common/loading-skeleton/index.js +1 -2
- package/dist/cjs/view/FlexibleCard/components/elements/media/index.js +5 -2
- package/dist/cjs/view/HoverCard/components/HoverCardComponent.js +9 -2
- package/dist/cjs/view/HoverCard/components/HoverCardContent.js +36 -8
- package/dist/cjs/view/HoverCard/components/SnippetOrPreview.js +74 -0
- package/dist/cjs/view/HoverCard/index.js +6 -1
- package/dist/cjs/view/HoverCard/styled.js +11 -3
- package/dist/es2019/extractors/block/index.js +2 -1
- package/dist/es2019/extractors/common/actions/extractPreviewAction.js +12 -3
- package/dist/es2019/state/actions/index.js +54 -10
- package/dist/es2019/state/analytics/types.js +1 -0
- package/dist/es2019/state/analytics/useSmartLinkAnalytics.js +379 -39
- package/dist/es2019/state/hooks-external/useSmartLinkActions.js +11 -2
- package/dist/es2019/utils/analytics/analytics.js +253 -78
- package/dist/es2019/utils/analytics/index.js +32 -4
- package/dist/es2019/version.json +1 -1
- package/dist/es2019/view/BlockCard/actions/PreviewAction.js +1 -1
- package/dist/es2019/view/BlockCard/index.js +9 -0
- package/dist/es2019/view/CardWithUrl/component.js +26 -4
- package/dist/es2019/view/CardWithUrl/loader.js +6 -1
- package/dist/es2019/view/EmbedModal/components/size-experiment/index.js +28 -0
- package/dist/es2019/view/EmbedModal/components/size-experiment/types.js +1 -0
- package/dist/es2019/view/EmbedModal/index.js +5 -3
- package/dist/es2019/view/FlexibleCard/components/blocks/block/index.js +17 -7
- package/dist/es2019/view/FlexibleCard/components/blocks/preview-block/index.js +4 -1
- package/dist/es2019/view/FlexibleCard/components/common/atlaskit-icon/index.js +17 -6
- package/dist/es2019/view/FlexibleCard/components/common/image-icon/index.js +4 -2
- package/dist/es2019/view/FlexibleCard/components/common/loading-skeleton/index.js +2 -3
- package/dist/es2019/view/FlexibleCard/components/elements/media/index.js +5 -2
- package/dist/es2019/view/HoverCard/components/HoverCardComponent.js +9 -2
- package/dist/es2019/view/HoverCard/components/HoverCardContent.js +36 -10
- package/dist/es2019/view/HoverCard/components/SnippetOrPreview.js +42 -0
- package/dist/es2019/view/HoverCard/index.js +6 -1
- package/dist/es2019/view/HoverCard/styled.js +8 -0
- package/dist/esm/extractors/block/index.js +3 -2
- package/dist/esm/extractors/common/actions/extractPreviewAction.js +12 -2
- package/dist/esm/state/actions/index.js +54 -10
- package/dist/esm/state/analytics/types.js +1 -0
- package/dist/esm/state/analytics/useSmartLinkAnalytics.js +383 -109
- package/dist/esm/state/hooks-external/useSmartLinkActions.js +11 -2
- package/dist/esm/utils/analytics/analytics.js +239 -72
- package/dist/esm/utils/analytics/index.js +31 -4
- package/dist/esm/version.json +1 -1
- package/dist/esm/view/BlockCard/actions/PreviewAction.js +1 -1
- package/dist/esm/view/BlockCard/index.js +9 -0
- package/dist/esm/view/CardWithUrl/component.js +26 -4
- package/dist/esm/view/CardWithUrl/loader.js +6 -1
- package/dist/esm/view/EmbedModal/components/size-experiment/index.js +28 -0
- package/dist/esm/view/EmbedModal/components/size-experiment/types.js +1 -0
- package/dist/esm/view/EmbedModal/index.js +6 -3
- package/dist/esm/view/FlexibleCard/components/blocks/block/index.js +11 -3
- package/dist/esm/view/FlexibleCard/components/blocks/preview-block/index.js +5 -2
- package/dist/esm/view/FlexibleCard/components/common/atlaskit-icon/index.js +18 -8
- package/dist/esm/view/FlexibleCard/components/common/image-icon/index.js +4 -2
- package/dist/esm/view/FlexibleCard/components/common/loading-skeleton/index.js +1 -2
- package/dist/esm/view/FlexibleCard/components/elements/media/index.js +5 -2
- package/dist/esm/view/HoverCard/components/HoverCardComponent.js +9 -2
- package/dist/esm/view/HoverCard/components/HoverCardContent.js +36 -10
- package/dist/esm/view/HoverCard/components/SnippetOrPreview.js +53 -0
- package/dist/esm/view/HoverCard/index.js +6 -1
- package/dist/esm/view/HoverCard/styled.js +6 -2
- package/dist/types/extractors/block/types.d.ts +2 -0
- package/dist/types/extractors/common/actions/extractPreviewAction.d.ts +2 -1
- package/dist/types/state/analytics/types.d.ts +9 -0
- package/dist/types/state/analytics/useSmartLinkAnalytics.d.ts +18 -23
- package/dist/types/state/hooks/useSmartLink.d.ts +17 -18
- package/dist/types/utils/analytics/analytics.d.ts +19 -21
- package/dist/types/utils/analytics/index.d.ts +2 -2
- package/dist/types/utils/analytics/types.d.ts +91 -0
- package/dist/types/view/BlockCard/actions/PreviewAction.d.ts +4 -2
- package/dist/types/view/Card/index.d.ts +1 -1
- package/dist/types/view/EmbedModal/components/size-experiment/index.d.ts +6 -0
- package/dist/types/view/EmbedModal/components/size-experiment/types.d.ts +4 -0
- package/dist/types/view/EmbedModal/index.d.ts +1 -1
- package/dist/types/view/EmbedModal/types.d.ts +4 -0
- package/dist/types/view/FlexibleCard/components/blocks/preview-block/types.d.ts +7 -1
- package/dist/types/view/FlexibleCard/components/blocks/types.d.ts +15 -0
- package/dist/types/view/FlexibleCard/components/common/image-icon/types.d.ts +1 -0
- package/dist/types/view/FlexibleCard/components/elements/media/types.d.ts +5 -0
- package/dist/types/view/HoverCard/components/SnippetOrPreview.d.ts +4 -0
- package/dist/types/view/HoverCard/styled.d.ts +2 -0
- package/dist/types/view/HoverCard/types.d.ts +5 -0
- package/package.json +2 -2
- package/report.api.md +294 -110
|
@@ -80,7 +80,7 @@ function CardWithUrlContent(_ref) {
|
|
|
80
80
|
var showHoverPreviewFlag = (0, _linkProvider.useFeatureFlag)('showHoverPreview');
|
|
81
81
|
|
|
82
82
|
if (showHoverPreview === undefined && showHoverPreviewFlag !== undefined) {
|
|
83
|
-
showHoverPreview = showHoverPreviewFlag;
|
|
83
|
+
showHoverPreview = Boolean(showHoverPreviewFlag);
|
|
84
84
|
} // Setup UI handlers.
|
|
85
85
|
|
|
86
86
|
|
|
@@ -90,7 +90,16 @@ function CardWithUrlContent(_ref) {
|
|
|
90
90
|
}, [state.details, url]);
|
|
91
91
|
var handleClickWrapper = (0, _react.useCallback)(function (event) {
|
|
92
92
|
var isModifierKeyPressed = (0, _utils.isSpecialEvent)(event);
|
|
93
|
-
analytics.ui.cardClickedEvent(
|
|
93
|
+
analytics.ui.cardClickedEvent({
|
|
94
|
+
id: id,
|
|
95
|
+
display: isFlexibleUi ? 'flexible' : appearance,
|
|
96
|
+
status: state.status,
|
|
97
|
+
definitionId: definitionId,
|
|
98
|
+
extensionKey: extensionKey,
|
|
99
|
+
isModifierKeyPressed: isModifierKeyPressed,
|
|
100
|
+
destinationProduct: product,
|
|
101
|
+
destinationSubproduct: subproduct
|
|
102
|
+
});
|
|
94
103
|
|
|
95
104
|
if (onClick) {
|
|
96
105
|
onClick(event);
|
|
@@ -114,7 +123,14 @@ function CardWithUrlContent(_ref) {
|
|
|
114
123
|
|
|
115
124
|
if (state.status !== 'pending') {
|
|
116
125
|
measure.create(id, state.status);
|
|
117
|
-
analytics.operational.instrument(
|
|
126
|
+
analytics.operational.instrument({
|
|
127
|
+
id: id,
|
|
128
|
+
status: state.status,
|
|
129
|
+
definitionId: definitionId,
|
|
130
|
+
extensionKey: extensionKey,
|
|
131
|
+
resourceType: resourceType,
|
|
132
|
+
error: state.error
|
|
133
|
+
});
|
|
118
134
|
}
|
|
119
135
|
}, [id, appearance, state.status, state.error, definitionId, extensionKey, resourceType, analytics.operational]); // NB: once the smart-card has rendered into an end state, we capture
|
|
120
136
|
// this as a successful render. These can be one of:
|
|
@@ -123,7 +139,13 @@ function CardWithUrlContent(_ref) {
|
|
|
123
139
|
|
|
124
140
|
(0, _react.useEffect)(function () {
|
|
125
141
|
if ((0, _helpers.isFinalState)(state.status)) {
|
|
126
|
-
analytics.ui.renderSuccessEvent(
|
|
142
|
+
analytics.ui.renderSuccessEvent({
|
|
143
|
+
display: appearance,
|
|
144
|
+
status: state.status,
|
|
145
|
+
id: id,
|
|
146
|
+
definitionId: definitionId,
|
|
147
|
+
extensionKey: extensionKey
|
|
148
|
+
});
|
|
127
149
|
}
|
|
128
150
|
}, [appearance, state.status, url, definitionId, extensionKey, analytics.ui, id]);
|
|
129
151
|
|
|
@@ -96,7 +96,12 @@ function CardWithURLRenderer(props) {
|
|
|
96
96
|
var errorInfo = {
|
|
97
97
|
componentStack: componentStack
|
|
98
98
|
};
|
|
99
|
-
analytics.ui.renderFailedEvent(
|
|
99
|
+
analytics.ui.renderFailedEvent({
|
|
100
|
+
display: appearance,
|
|
101
|
+
id: id,
|
|
102
|
+
error: error,
|
|
103
|
+
errorInfo: errorInfo
|
|
104
|
+
});
|
|
100
105
|
}
|
|
101
106
|
}, [analytics.ui, appearance, id]);
|
|
102
107
|
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.default = void 0;
|
|
9
|
+
|
|
10
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
11
|
+
|
|
12
|
+
var _react = _interopRequireDefault(require("react"));
|
|
13
|
+
|
|
14
|
+
var _Modal = _interopRequireDefault(require("../../../common/Modal"));
|
|
15
|
+
|
|
16
|
+
var _constants = require("../../constants");
|
|
17
|
+
|
|
18
|
+
var withSizeExperiment = function withSizeExperiment(Component) {
|
|
19
|
+
return function (props) {
|
|
20
|
+
var _props$featureFlags = props.featureFlags,
|
|
21
|
+
featureFlags = _props$featureFlags === void 0 ? {} : _props$featureFlags,
|
|
22
|
+
_props$closeLabel = props.closeLabel,
|
|
23
|
+
closeLabel = _props$closeLabel === void 0 ? 'Close Preview' : _props$closeLabel;
|
|
24
|
+
var embedModalSize = featureFlags.embedModalSize; // Experiment
|
|
25
|
+
|
|
26
|
+
if (embedModalSize === 'large' || embedModalSize === 'small') {
|
|
27
|
+
var size = embedModalSize === 'large' ? _constants.MAX_MODAL_SIZE : _constants.MIN_MODAL_SIZE;
|
|
28
|
+
return /*#__PURE__*/_react.default.createElement(Component, (0, _extends2.default)({}, props, {
|
|
29
|
+
size: size
|
|
30
|
+
}));
|
|
31
|
+
} // Control
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
return /*#__PURE__*/_react.default.createElement(_Modal.default, (0, _extends2.default)({}, props, {
|
|
35
|
+
closeLabel: closeLabel
|
|
36
|
+
}));
|
|
37
|
+
};
|
|
38
|
+
};
|
|
39
|
+
|
|
40
|
+
var _default = withSizeExperiment;
|
|
41
|
+
exports.default = _default;
|
|
@@ -23,6 +23,8 @@ var _embedContent = _interopRequireDefault(require("./components/embed-content")
|
|
|
23
23
|
|
|
24
24
|
var _errorBoundary = _interopRequireDefault(require("./components/error-boundary"));
|
|
25
25
|
|
|
26
|
+
var _sizeExperiment = _interopRequireDefault(require("./components/size-experiment"));
|
|
27
|
+
|
|
26
28
|
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); }
|
|
27
29
|
|
|
28
30
|
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; }
|
|
@@ -39,9 +41,11 @@ var EmbedModal = function EmbedModal(_ref) {
|
|
|
39
41
|
onViewActionClick = _ref.onViewActionClick,
|
|
40
42
|
providerName = _ref.providerName,
|
|
41
43
|
showModal = _ref.showModal,
|
|
44
|
+
_ref$size = _ref.size,
|
|
45
|
+
defaultSize = _ref$size === void 0 ? _constants.MIN_MODAL_SIZE : _ref$size,
|
|
42
46
|
src = _ref.src,
|
|
43
47
|
_ref$testId = _ref.testId,
|
|
44
|
-
testId = _ref$testId === void 0 ? 'smart-
|
|
48
|
+
testId = _ref$testId === void 0 ? 'smart-embed-preview-modal' : _ref$testId,
|
|
45
49
|
title = _ref.title,
|
|
46
50
|
url = _ref.url;
|
|
47
51
|
|
|
@@ -50,7 +54,7 @@ var EmbedModal = function EmbedModal(_ref) {
|
|
|
50
54
|
isOpen = _useState2[0],
|
|
51
55
|
setIsOpen = _useState2[1];
|
|
52
56
|
|
|
53
|
-
var _useState3 = (0, _react.useState)(
|
|
57
|
+
var _useState3 = (0, _react.useState)(defaultSize),
|
|
54
58
|
_useState4 = (0, _slicedToArray2.default)(_useState3, 2),
|
|
55
59
|
size = _useState4[0],
|
|
56
60
|
setSize = _useState4[1];
|
|
@@ -88,6 +92,6 @@ var EmbedModal = function EmbedModal(_ref) {
|
|
|
88
92
|
}))));
|
|
89
93
|
};
|
|
90
94
|
|
|
91
|
-
var _default = (0, _errorBoundary.default)(EmbedModal);
|
|
95
|
+
var _default = (0, _sizeExperiment.default)((0, _errorBoundary.default)(EmbedModal));
|
|
92
96
|
|
|
93
97
|
exports.default = _default;
|
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
4
|
|
|
5
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
6
|
+
|
|
5
7
|
Object.defineProperty(exports, "__esModule", {
|
|
6
8
|
value: true
|
|
7
9
|
});
|
|
@@ -9,7 +11,7 @@ exports.default = void 0;
|
|
|
9
11
|
|
|
10
12
|
var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
|
|
11
13
|
|
|
12
|
-
var _react =
|
|
14
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
13
15
|
|
|
14
16
|
var _core = require("@emotion/core");
|
|
15
17
|
|
|
@@ -19,6 +21,10 @@ var _utils = require("../utils");
|
|
|
19
21
|
|
|
20
22
|
var _templateObject;
|
|
21
23
|
|
|
24
|
+
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); }
|
|
25
|
+
|
|
26
|
+
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; }
|
|
27
|
+
|
|
22
28
|
var getBlockStyles = function getBlockStyles(direction, size) {
|
|
23
29
|
return (0, _core.css)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n ", "\n ", "\n justify-content: flex-start;\n [data-separator] + [data-separator]:before {\n content: '\u2022';\n margin-right: ", "rem;\n }\n // Pull request elements: source branch \u2192 target branch\n [data-smart-element='", "']\n + [data-smart-element='", "']:before {\n content: '\u2192';\n }\n // Pull request elements: target branch \u2190 source branch\n [data-smart-element='", "']\n + [data-smart-element='", "']:before {\n content: '\u2190';\n }\n"])), (0, _utils.getBaseStyles)(direction, size), _utils.highlightRemoveStyles, (0, _utils.getGapSize)(size), _constants.ElementName.SourceBranch, _constants.ElementName.TargetBranch, _constants.ElementName.TargetBranch, _constants.ElementName.SourceBranch);
|
|
24
30
|
};
|
|
@@ -39,11 +45,19 @@ var Block = function Block(_ref) {
|
|
|
39
45
|
size = _ref$size === void 0 ? _constants.SmartLinkSize.Medium : _ref$size,
|
|
40
46
|
_ref$testId = _ref.testId,
|
|
41
47
|
testId = _ref$testId === void 0 ? 'smart-block' : _ref$testId,
|
|
42
|
-
overrideCss = _ref.overrideCss
|
|
48
|
+
overrideCss = _ref.overrideCss,
|
|
49
|
+
blockRef = _ref.blockRef,
|
|
50
|
+
onRender = _ref.onRender,
|
|
51
|
+
onTransitionEnd = _ref.onTransitionEnd;
|
|
52
|
+
(0, _react.useEffect)(function () {
|
|
53
|
+
onRender && onRender();
|
|
54
|
+
}, [onRender]);
|
|
43
55
|
return (0, _core.jsx)("div", {
|
|
44
56
|
css: [getBlockStyles(direction, size), overrideCss],
|
|
45
57
|
"data-smart-block": true,
|
|
46
|
-
"data-testid": testId
|
|
58
|
+
"data-testid": testId,
|
|
59
|
+
onTransitionEnd: onTransitionEnd,
|
|
60
|
+
ref: blockRef
|
|
47
61
|
}, (0, _utils.renderChildren)(children, size));
|
|
48
62
|
};
|
|
49
63
|
|
|
@@ -19,7 +19,7 @@ var _block = _interopRequireDefault(require("../block"));
|
|
|
19
19
|
|
|
20
20
|
var _elements = require("../../elements");
|
|
21
21
|
|
|
22
|
-
var _excluded = ["status", "testId"];
|
|
22
|
+
var _excluded = ["status", "testId", "onError"];
|
|
23
23
|
|
|
24
24
|
/**
|
|
25
25
|
* Represents a PreviewBlock, which typically contains media or other large format content.
|
|
@@ -32,6 +32,7 @@ var PreviewBlock = function PreviewBlock(_ref) {
|
|
|
32
32
|
status = _ref$status === void 0 ? _constants.SmartLinkStatus.Fallback : _ref$status,
|
|
33
33
|
_ref$testId = _ref.testId,
|
|
34
34
|
testId = _ref$testId === void 0 ? 'smart-block-preview' : _ref$testId,
|
|
35
|
+
onError = _ref.onError,
|
|
35
36
|
blockProps = (0, _objectWithoutProperties2.default)(_ref, _excluded);
|
|
36
37
|
|
|
37
38
|
if (status !== _constants.SmartLinkStatus.Resolved) {
|
|
@@ -40,7 +41,9 @@ var PreviewBlock = function PreviewBlock(_ref) {
|
|
|
40
41
|
|
|
41
42
|
return /*#__PURE__*/_react.default.createElement(_block.default, (0, _extends2.default)({}, blockProps, {
|
|
42
43
|
testId: "".concat(testId, "-resolved-view")
|
|
43
|
-
}), /*#__PURE__*/_react.default.createElement(_elements.Preview,
|
|
44
|
+
}), /*#__PURE__*/_react.default.createElement(_elements.Preview, {
|
|
45
|
+
onError: onError
|
|
46
|
+
}));
|
|
44
47
|
};
|
|
45
48
|
|
|
46
49
|
var _default = PreviewBlock;
|
|
@@ -17,6 +17,10 @@ var _reactLoadable = _interopRequireDefault(require("react-loadable"));
|
|
|
17
17
|
|
|
18
18
|
var _colors = require("@atlaskit/theme/colors");
|
|
19
19
|
|
|
20
|
+
var _ = _interopRequireDefault(require("@atlaskit/icon-file-type/glyph/document/16"));
|
|
21
|
+
|
|
22
|
+
var _2 = _interopRequireDefault(require("@atlaskit/icon-object/glyph/blog/16"));
|
|
23
|
+
|
|
20
24
|
var _constants = require("../../../../../constants");
|
|
21
25
|
|
|
22
26
|
var _tokens = require("@atlaskit/tokens");
|
|
@@ -36,18 +40,10 @@ var importIconMapper = (_importIconMapper = {}, (0, _defineProperty2.default)(_i
|
|
|
36
40
|
return Promise.resolve().then(function () {
|
|
37
41
|
return _interopRequireWildcard(require('@atlaskit/icon-file-type/glyph/audio/16'));
|
|
38
42
|
});
|
|
39
|
-
}), (0, _defineProperty2.default)(_importIconMapper, _constants.IconType.Blog, function () {
|
|
40
|
-
return Promise.resolve().then(function () {
|
|
41
|
-
return _interopRequireWildcard(require('@atlaskit/icon-object/glyph/blog/16'));
|
|
42
|
-
});
|
|
43
43
|
}), (0, _defineProperty2.default)(_importIconMapper, _constants.IconType.Code, function () {
|
|
44
44
|
return Promise.resolve().then(function () {
|
|
45
45
|
return _interopRequireWildcard(require('@atlaskit/icon-file-type/glyph/source-code/16'));
|
|
46
46
|
});
|
|
47
|
-
}), (0, _defineProperty2.default)(_importIconMapper, _constants.IconType.Document, function () {
|
|
48
|
-
return Promise.resolve().then(function () {
|
|
49
|
-
return _interopRequireWildcard(require('@atlaskit/icon-file-type/glyph/document/16'));
|
|
50
|
-
});
|
|
51
47
|
}), (0, _defineProperty2.default)(_importIconMapper, _constants.IconType.Executable, function () {
|
|
52
48
|
return Promise.resolve().then(function () {
|
|
53
49
|
return _interopRequireWildcard(require('@atlaskit/icon-file-type/glyph/executable/16'));
|
|
@@ -301,6 +297,22 @@ var AtlaskitIcon = function AtlaskitIcon(_ref3) {
|
|
|
301
297
|
var icon = _ref3.icon,
|
|
302
298
|
label = _ref3.label,
|
|
303
299
|
testId = _ref3.testId;
|
|
300
|
+
|
|
301
|
+
// Check for synchonously loaded icons first for SSR purposes
|
|
302
|
+
switch (icon) {
|
|
303
|
+
case _constants.IconType.Document:
|
|
304
|
+
return /*#__PURE__*/_react.default.createElement(_.default, {
|
|
305
|
+
label: label || 'document',
|
|
306
|
+
testId: testId
|
|
307
|
+
});
|
|
308
|
+
|
|
309
|
+
case _constants.IconType.Blog:
|
|
310
|
+
return /*#__PURE__*/_react.default.createElement(_2.default, {
|
|
311
|
+
label: label || 'blog',
|
|
312
|
+
testId: testId
|
|
313
|
+
});
|
|
314
|
+
}
|
|
315
|
+
|
|
304
316
|
var importFn = getIconImportFn(icon);
|
|
305
317
|
|
|
306
318
|
if (!importFn) {
|
|
@@ -19,7 +19,8 @@ var _loadingSkeleton = _interopRequireDefault(require("../loading-skeleton"));
|
|
|
19
19
|
var ImageIcon = function ImageIcon(_ref) {
|
|
20
20
|
var defaultIcon = _ref.defaultIcon,
|
|
21
21
|
testId = _ref.testId,
|
|
22
|
-
url = _ref.url
|
|
22
|
+
url = _ref.url,
|
|
23
|
+
onError = _ref.onError;
|
|
23
24
|
return (0, _core.jsx)(_reactRenderImage.default, {
|
|
24
25
|
src: url,
|
|
25
26
|
loading: (0, _core.jsx)(_loadingSkeleton.default, {
|
|
@@ -29,7 +30,8 @@ var ImageIcon = function ImageIcon(_ref) {
|
|
|
29
30
|
src: url,
|
|
30
31
|
"data-testid": "".concat(testId, "-image")
|
|
31
32
|
}),
|
|
32
|
-
errored: defaultIcon
|
|
33
|
+
errored: defaultIcon,
|
|
34
|
+
onError: onError
|
|
33
35
|
});
|
|
34
36
|
};
|
|
35
37
|
|
|
@@ -21,8 +21,7 @@ var LoadingSkeleton = function LoadingSkeleton(_ref) {
|
|
|
21
21
|
var testId = _ref.testId,
|
|
22
22
|
width = _ref.width,
|
|
23
23
|
height = _ref.height;
|
|
24
|
-
var
|
|
25
|
-
var animationNameStyles = (0, _core.keyframes)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n 0% { background-position: -", " 0; }\n 100% { background-position: ", " 0; }\n "])), animationWidth, animationWidth);
|
|
24
|
+
var animationNameStyles = (0, _core.keyframes)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n 0% { background-position: 50% 0; }\n 100% { background-position: -50% 0; }\n "])));
|
|
26
25
|
var styles = (0, _core.css)(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2.default)(["\n width: ", "rem;\n height: ", "rem;\n border-radius: 2px;\n user-select: none;\n background: ", ";\n // TODO: https://product-fabric.atlassian.net/browse/DSP-4236\n background-image: linear-gradient(\n to right,\n ", " 0%,\n ", " 20%,\n ", " 40%,\n ", "100%\n );\n background-repeat: no-repeat;\n background-size: 280% 100%;\n display: inline-block;\n\n animation-duration: 1s;\n animation-fill-mode: forwards;\n animation-iteration-count: infinite;\n animation-name: ", ";\n animation-timing-function: linear;\n "])), width, height, (0, _tokens.token)('color.skeleton.subtle', '#f6f7f8'), (0, _tokens.token)('color.skeleton.subtle', '#f6f7f8'), (0, _tokens.token)('color.skeleton', '#edeef1'), (0, _tokens.token)('color.skeleton.subtle', '#f6f7f8'), (0, _tokens.token)('color.skeleton.subtle', '#f6f7f8'), animationNameStyles);
|
|
27
26
|
return (0, _core.jsx)("span", {
|
|
28
27
|
css: styles,
|
|
@@ -41,7 +41,8 @@ var Media = function Media(_ref) {
|
|
|
41
41
|
_ref$testId = _ref.testId,
|
|
42
42
|
testId = _ref$testId === void 0 ? 'smart-element-media' : _ref$testId,
|
|
43
43
|
type = _ref.type,
|
|
44
|
-
url = _ref.url
|
|
44
|
+
url = _ref.url,
|
|
45
|
+
onError = _ref.onError;
|
|
45
46
|
|
|
46
47
|
if (!type || !url) {
|
|
47
48
|
return null;
|
|
@@ -54,7 +55,9 @@ var Media = function Media(_ref) {
|
|
|
54
55
|
"data-testid": testId
|
|
55
56
|
}, (0, _core.jsx)(_imageIcon.default, {
|
|
56
57
|
testId: "".concat(testId, "-image"),
|
|
57
|
-
url: url
|
|
58
|
+
url: url,
|
|
59
|
+
onError: onError,
|
|
60
|
+
defaultIcon: null
|
|
58
61
|
}));
|
|
59
62
|
};
|
|
60
63
|
|
|
@@ -75,7 +75,11 @@ var HoverCardComponent = function HoverCardComponent(_ref) {
|
|
|
75
75
|
//Check its previously open to avoid firing events when moving between the child and hover card components
|
|
76
76
|
if (isOpen === true && cardOpenTime.current) {
|
|
77
77
|
var hoverTime = Date.now() - cardOpenTime.current;
|
|
78
|
-
analytics.ui.hoverCardDismissedEvent(
|
|
78
|
+
analytics.ui.hoverCardDismissedEvent({
|
|
79
|
+
previewDisplay: 'card',
|
|
80
|
+
hoverTime: hoverTime,
|
|
81
|
+
previewInvokeMethod: 'mouse_hover'
|
|
82
|
+
});
|
|
79
83
|
}
|
|
80
84
|
|
|
81
85
|
setIsOpen(false);
|
|
@@ -100,7 +104,10 @@ var HoverCardComponent = function HoverCardComponent(_ref) {
|
|
|
100
104
|
//Check if its previously closed to avoid firing events when moving between the child and hover card components
|
|
101
105
|
if (isOpen === false) {
|
|
102
106
|
cardOpenTime.current = Date.now();
|
|
103
|
-
analytics.ui.hoverCardViewedEvent(
|
|
107
|
+
analytics.ui.hoverCardViewedEvent({
|
|
108
|
+
previewDisplay: hoverDisplay,
|
|
109
|
+
previewInvokeMethod: invokeMethod
|
|
110
|
+
});
|
|
104
111
|
} //If these are undefined then popupOffset is undefined and we fallback to default bottom-start placement
|
|
105
112
|
|
|
106
113
|
|
|
@@ -17,8 +17,6 @@ var _react = _interopRequireWildcard(require("react"));
|
|
|
17
17
|
|
|
18
18
|
var _constants = require("../../../constants");
|
|
19
19
|
|
|
20
|
-
var _extractPreview = _interopRequireDefault(require("../../../extractors/flexible/extract-preview"));
|
|
21
|
-
|
|
22
20
|
var _extractMetadata2 = require("../../../extractors/hover/extractMetadata");
|
|
23
21
|
|
|
24
22
|
var _actions = require("../../../state/actions");
|
|
@@ -37,6 +35,8 @@ var _utils2 = require("../utils");
|
|
|
37
35
|
|
|
38
36
|
var _HoverCardLoadingView = _interopRequireDefault(require("./HoverCardLoadingView"));
|
|
39
37
|
|
|
38
|
+
var _SnippetOrPreview = _interopRequireDefault(require("./SnippetOrPreview"));
|
|
39
|
+
|
|
40
40
|
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); }
|
|
41
41
|
|
|
42
42
|
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; }
|
|
@@ -55,7 +55,9 @@ var getOpenAction = function getOpenAction(url, analytics, onActionClick) {
|
|
|
55
55
|
}
|
|
56
56
|
|
|
57
57
|
window.open(url, '_blank');
|
|
58
|
-
analytics.ui.hoverCardOpenLinkClickedEvent(
|
|
58
|
+
analytics.ui.hoverCardOpenLinkClickedEvent({
|
|
59
|
+
previewDisplay: 'card'
|
|
60
|
+
});
|
|
59
61
|
},
|
|
60
62
|
testId: 'hover-card-open-button'
|
|
61
63
|
};
|
|
@@ -102,15 +104,24 @@ var HoverCardContent = function HoverCardContent(_ref) {
|
|
|
102
104
|
(0, _react.useEffect)(function () {
|
|
103
105
|
// Since hover preview only render on resolved status,
|
|
104
106
|
// there is no need to check for statuses.
|
|
105
|
-
analytics.ui.renderSuccessEvent(
|
|
107
|
+
analytics.ui.renderSuccessEvent({
|
|
108
|
+
display: _utils2.SMART_CARD_ANALYTICS_DISPLAY,
|
|
109
|
+
status: cardState.status
|
|
110
|
+
});
|
|
106
111
|
}, [analytics.ui, cardState.status]);
|
|
107
112
|
var extensionKey = (0, _react.useMemo)(function () {
|
|
108
113
|
return (0, _helpers.getExtensionKey)(cardState.details);
|
|
109
114
|
}, [cardState.details]);
|
|
110
115
|
var onClick = (0, _react.useCallback)(function (event) {
|
|
111
116
|
var isModifierKeyPressed = (0, _utils.isSpecialEvent)(event);
|
|
112
|
-
analytics.ui.cardClickedEvent(
|
|
113
|
-
|
|
117
|
+
analytics.ui.cardClickedEvent({
|
|
118
|
+
id: id,
|
|
119
|
+
display: _utils2.SMART_CARD_ANALYTICS_DISPLAY,
|
|
120
|
+
status: cardState.status,
|
|
121
|
+
isModifierKeyPressed: isModifierKeyPressed,
|
|
122
|
+
actionSubjectId: 'titleGoToLink'
|
|
123
|
+
});
|
|
124
|
+
}, [cardState.status, analytics.ui, id]);
|
|
114
125
|
var titleActions = (0, _react.useMemo)(function () {
|
|
115
126
|
return [getOpenAction(url, analytics, onActionClick)];
|
|
116
127
|
}, [url, analytics, onActionClick]);
|
|
@@ -126,7 +137,19 @@ var HoverCardContent = function HoverCardContent(_ref) {
|
|
|
126
137
|
subtitle = _extractMetadata.subtitle;
|
|
127
138
|
|
|
128
139
|
var titleMaxLines = subtitle && subtitle.length > 0 ? 1 : 2;
|
|
129
|
-
|
|
140
|
+
|
|
141
|
+
var snippetHeight = _react.default.useRef(0);
|
|
142
|
+
|
|
143
|
+
var snippetBlockRef = (0, _react.useRef)(null);
|
|
144
|
+
var onSnippetRender = (0, _react.useCallback)(function () {
|
|
145
|
+
var _snippetBlockRef$curr, _snippetBlockRef$curr2;
|
|
146
|
+
|
|
147
|
+
snippetHeight.current = (_snippetBlockRef$curr = (_snippetBlockRef$curr2 = snippetBlockRef.current) === null || _snippetBlockRef$curr2 === void 0 ? void 0 : _snippetBlockRef$curr2.getBoundingClientRect().height) !== null && _snippetBlockRef$curr !== void 0 ? _snippetBlockRef$curr : 0;
|
|
148
|
+
}, []);
|
|
149
|
+
var body = (0, _SnippetOrPreview.default)({
|
|
150
|
+
data: data,
|
|
151
|
+
snippetHeight: snippetHeight.current
|
|
152
|
+
});
|
|
130
153
|
var titleBlockProps = {
|
|
131
154
|
actions: titleActions,
|
|
132
155
|
maxLines: titleMaxLines,
|
|
@@ -159,7 +182,12 @@ var HoverCardContent = function HoverCardContent(_ref) {
|
|
|
159
182
|
size: _constants.SmartLinkSize.Large,
|
|
160
183
|
overrideCss: _styled.metadataBlockCss,
|
|
161
184
|
maxLines: 1
|
|
162
|
-
}), body, /*#__PURE__*/_react.default.createElement(_blocks.
|
|
185
|
+
}), body, /*#__PURE__*/_react.default.createElement(_blocks.SnippetBlock, {
|
|
186
|
+
testId: 'hidden-snippet',
|
|
187
|
+
onRender: onSnippetRender,
|
|
188
|
+
blockRef: snippetBlockRef,
|
|
189
|
+
overrideCss: _styled.hiddenSnippetStyles
|
|
190
|
+
}), /*#__PURE__*/_react.default.createElement(_blocks.FooterBlock, {
|
|
163
191
|
actions: footerActions,
|
|
164
192
|
size: _constants.SmartLinkSize.Large,
|
|
165
193
|
overrideCss: _styled.footerBlockCss
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
6
|
+
|
|
7
|
+
Object.defineProperty(exports, "__esModule", {
|
|
8
|
+
value: true
|
|
9
|
+
});
|
|
10
|
+
exports.default = void 0;
|
|
11
|
+
|
|
12
|
+
var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
|
|
13
|
+
|
|
14
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
15
|
+
|
|
16
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
17
|
+
|
|
18
|
+
var _core = require("@emotion/core");
|
|
19
|
+
|
|
20
|
+
var _extractPreview = _interopRequireDefault(require("../../../extractors/flexible/extract-preview"));
|
|
21
|
+
|
|
22
|
+
var _blocks = require("../../FlexibleCard/components/blocks");
|
|
23
|
+
|
|
24
|
+
var _styled = require("../styled");
|
|
25
|
+
|
|
26
|
+
var _templateObject;
|
|
27
|
+
|
|
28
|
+
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); }
|
|
29
|
+
|
|
30
|
+
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; }
|
|
31
|
+
|
|
32
|
+
var SnippetOrPreview = function SnippetOrPreview(_ref) {
|
|
33
|
+
var data = _ref.data,
|
|
34
|
+
snippetHeight = _ref.snippetHeight;
|
|
35
|
+
var transitionStarted = (0, _react.useRef)(false);
|
|
36
|
+
var previewBlockRef = (0, _react.useRef)(null);
|
|
37
|
+
|
|
38
|
+
var _useState = (0, _react.useState)(false),
|
|
39
|
+
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
|
|
40
|
+
showSnippet = _useState2[0],
|
|
41
|
+
setShowSnippet = _useState2[1];
|
|
42
|
+
|
|
43
|
+
var _useState3 = (0, _react.useState)(),
|
|
44
|
+
_useState4 = (0, _slicedToArray2.default)(_useState3, 2),
|
|
45
|
+
previewCss = _useState4[0],
|
|
46
|
+
setPreviewCss = _useState4[1]; // Set Preview to a fixed height to enable transitions
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
var onPreviewRender = (0, _react.useCallback)(function () {
|
|
50
|
+
var _previewBlockRef$curr;
|
|
51
|
+
|
|
52
|
+
previewBlockRef.current && setPreviewCss((0, _core.css)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n height: ", "px;\n "])), (_previewBlockRef$curr = previewBlockRef.current) === null || _previewBlockRef$curr === void 0 ? void 0 : _previewBlockRef$curr.getBoundingClientRect().height));
|
|
53
|
+
}, []); // On error set Preview to Snippet height with transition
|
|
54
|
+
|
|
55
|
+
var onPreviewError = (0, _react.useCallback)(function () {
|
|
56
|
+
if (transitionStarted.current === false) {
|
|
57
|
+
setPreviewCss((0, _styled.getTransitionStyles)(snippetHeight));
|
|
58
|
+
transitionStarted.current = true;
|
|
59
|
+
}
|
|
60
|
+
}, [snippetHeight]);
|
|
61
|
+
var onPreviewTransitionEnd = (0, _react.useCallback)(function () {
|
|
62
|
+
setShowSnippet(true);
|
|
63
|
+
}, []);
|
|
64
|
+
return !showSnippet && data && (0, _extractPreview.default)(data) ? /*#__PURE__*/_react.default.createElement(_blocks.PreviewBlock, {
|
|
65
|
+
onError: onPreviewError,
|
|
66
|
+
overrideCss: previewCss,
|
|
67
|
+
onTransitionEnd: onPreviewTransitionEnd,
|
|
68
|
+
blockRef: previewBlockRef,
|
|
69
|
+
onRender: onPreviewRender
|
|
70
|
+
}) : /*#__PURE__*/_react.default.createElement(_blocks.SnippetBlock, null);
|
|
71
|
+
};
|
|
72
|
+
|
|
73
|
+
var _default = SnippetOrPreview;
|
|
74
|
+
exports.default = _default;
|
|
@@ -36,7 +36,12 @@ var HoverCardWithErrorBoundary = function HoverCardWithErrorBoundary(props) {
|
|
|
36
36
|
}, [createAnalyticsEvent]);
|
|
37
37
|
var analytics = (0, _analytics.useSmartLinkAnalytics)(url, analyticsHandler, id);
|
|
38
38
|
var onError = (0, _react.useCallback)(function (error, info) {
|
|
39
|
-
analytics.ui.renderFailedEvent(
|
|
39
|
+
analytics.ui.renderFailedEvent({
|
|
40
|
+
display: _utils.SMART_CARD_ANALYTICS_DISPLAY,
|
|
41
|
+
id: id,
|
|
42
|
+
error: error,
|
|
43
|
+
errorInfo: info
|
|
44
|
+
});
|
|
40
45
|
}, [analytics.ui, id]);
|
|
41
46
|
return (0, _core.jsx)(_reactErrorBoundary.ErrorBoundary, {
|
|
42
47
|
fallback: children,
|
|
@@ -5,7 +5,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", {
|
|
6
6
|
value: true
|
|
7
7
|
});
|
|
8
|
-
exports.titleBlockCss = exports.skeletonContainer = exports.metadataBlockCss = exports.loadingViewContainer = exports.footerBlockCss = exports.flexibleUiOptions = exports.HoverCardContainer = exports.CARD_WIDTH_REM = exports.CARD_GAP_PX = void 0;
|
|
8
|
+
exports.titleBlockCss = exports.skeletonContainer = exports.metadataBlockCss = exports.loadingViewContainer = exports.hiddenSnippetStyles = exports.getTransitionStyles = exports.footerBlockCss = exports.flexibleUiOptions = exports.HoverCardContainer = exports.CARD_WIDTH_REM = exports.CARD_GAP_PX = void 0;
|
|
9
9
|
|
|
10
10
|
var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
|
|
11
11
|
|
|
@@ -15,7 +15,7 @@ var _index = require("../../index");
|
|
|
15
15
|
|
|
16
16
|
var _constants = require("../../constants");
|
|
17
17
|
|
|
18
|
-
var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7;
|
|
18
|
+
var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9;
|
|
19
19
|
|
|
20
20
|
var flexibleUiOptions = {
|
|
21
21
|
hideElevation: true,
|
|
@@ -44,4 +44,12 @@ exports.footerBlockCss = footerBlockCss;
|
|
|
44
44
|
var loadingViewContainer = (0, _core.css)(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2.default)(["\n display: flex;\n flex-direction: column;\n"])));
|
|
45
45
|
exports.loadingViewContainer = loadingViewContainer;
|
|
46
46
|
var skeletonContainer = (0, _core.css)(_templateObject7 || (_templateObject7 = (0, _taggedTemplateLiteral2.default)(["\n display: flex;\n flex-direction: column;\n gap: 0.625rem;\n align-items: center;\n"])));
|
|
47
|
-
exports.skeletonContainer = skeletonContainer;
|
|
47
|
+
exports.skeletonContainer = skeletonContainer;
|
|
48
|
+
var hiddenSnippetStyles = (0, _core.css)(_templateObject8 || (_templateObject8 = (0, _taggedTemplateLiteral2.default)(["\n visibility: hidden;\n position: absolute;\n"])));
|
|
49
|
+
exports.hiddenSnippetStyles = hiddenSnippetStyles;
|
|
50
|
+
|
|
51
|
+
var getTransitionStyles = function getTransitionStyles(snippetHeight) {
|
|
52
|
+
return (0, _core.css)(_templateObject9 || (_templateObject9 = (0, _taggedTemplateLiteral2.default)(["\n transition: height 300ms ease-in-out;\n height: ", "px;\n"])), snippetHeight);
|
|
53
|
+
};
|
|
54
|
+
|
|
55
|
+
exports.getTransitionStyles = getTransitionStyles;
|
|
@@ -28,6 +28,7 @@ const extractBlockDetails = jsonLd => [extractCommentCount(jsonLd), extractProgr
|
|
|
28
28
|
export const extractBlockActions = (props, jsonLd, opts, platform) => {
|
|
29
29
|
if (opts) {
|
|
30
30
|
const {
|
|
31
|
+
featureFlags,
|
|
31
32
|
handleInvoke,
|
|
32
33
|
handleAnalytics,
|
|
33
34
|
extensionKey,
|
|
@@ -35,7 +36,7 @@ export const extractBlockActions = (props, jsonLd, opts, platform) => {
|
|
|
35
36
|
testId
|
|
36
37
|
} = opts;
|
|
37
38
|
const actions = extractActions(jsonLd, handleInvoke);
|
|
38
|
-
const previewAction = extractPreviewAction(extensionKey, props, jsonLd, handleInvoke, handleAnalytics, testId, platform, source); // The previewAction should always be the last action
|
|
39
|
+
const previewAction = extractPreviewAction(extensionKey, props, jsonLd, handleInvoke, handleAnalytics, testId, platform, source, featureFlags); // The previewAction should always be the last action
|
|
39
40
|
|
|
40
41
|
if (previewAction) {
|
|
41
42
|
actions.push(previewAction);
|
|
@@ -39,7 +39,7 @@ const getInvokeOpts = (key, action, source) => ({
|
|
|
39
39
|
}
|
|
40
40
|
});
|
|
41
41
|
|
|
42
|
-
export const extractPreviewAction = (extensionKey = 'empty-object-provider', viewProps, jsonLd, handleInvoke, handleAnalytics, testId, platform, source) => {
|
|
42
|
+
export const extractPreviewAction = (extensionKey = 'empty-object-provider', viewProps, jsonLd, handleInvoke, handleAnalytics, testId, platform, source, featureFlags) => {
|
|
43
43
|
// Extract metadata from view props & raw JSON-LD.
|
|
44
44
|
const metadataFromJsonLd = getMetadataFromJsonLd(jsonLd, platform);
|
|
45
45
|
const metadataFromViewProps = getMetadataFromResolvedProps(viewProps);
|
|
@@ -51,12 +51,21 @@ export const extractPreviewAction = (extensionKey = 'empty-object-provider', vie
|
|
|
51
51
|
// Build action using instrumentation hooks.
|
|
52
52
|
const key = extensionKey;
|
|
53
53
|
const previewAction = PreviewAction({ ...metadata,
|
|
54
|
+
featureFlags,
|
|
54
55
|
testId,
|
|
55
56
|
onOpen: () => {
|
|
56
|
-
handleAnalytics(uiRenderSuccessEvent(
|
|
57
|
+
handleAnalytics(uiRenderSuccessEvent({
|
|
58
|
+
display: 'preview',
|
|
59
|
+
status: 'resolved',
|
|
60
|
+
extensionKey: key
|
|
61
|
+
}));
|
|
57
62
|
},
|
|
58
63
|
onOpenFailed: (error, errorInfo) => {
|
|
59
|
-
handleAnalytics(uiRenderFailedEvent(
|
|
64
|
+
handleAnalytics(uiRenderFailedEvent({
|
|
65
|
+
display: 'preview',
|
|
66
|
+
error,
|
|
67
|
+
errorInfo
|
|
68
|
+
}));
|
|
60
69
|
},
|
|
61
70
|
onDownloadActionClick: () => {
|
|
62
71
|
handleInvoke(getInvokeOpts(key, 'DownloadAction'));
|