@atlaskit/smart-card 26.16.0 → 26.16.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.
- package/CHANGELOG.md +6 -0
- package/dist/cjs/utils/analytics/analytics.js +1 -1
- package/dist/cjs/view/HoverCard/components/{SnippetOrPreview.js → ImagePreview.js} +19 -17
- package/dist/cjs/view/HoverCard/components/views/resolved/index.js +5 -5
- package/dist/cjs/view/HoverCard/components/views/resolving/styled.js +2 -1
- package/dist/cjs/view/HoverCard/styled.js +10 -6
- package/dist/cjs/view/LinkUrl/index.js +1 -1
- package/dist/es2019/utils/analytics/analytics.js +1 -1
- package/dist/es2019/view/HoverCard/components/ImagePreview.js +43 -0
- package/dist/es2019/view/HoverCard/components/views/resolved/index.js +5 -5
- package/dist/es2019/view/HoverCard/components/views/resolving/styled.js +2 -0
- package/dist/es2019/view/HoverCard/styled.js +10 -3
- package/dist/es2019/view/LinkUrl/index.js +1 -1
- package/dist/esm/utils/analytics/analytics.js +1 -1
- package/dist/esm/view/HoverCard/components/ImagePreview.js +49 -0
- package/dist/esm/view/HoverCard/components/views/resolved/index.js +5 -5
- package/dist/esm/view/HoverCard/components/views/resolving/styled.js +2 -1
- package/dist/esm/view/HoverCard/styled.js +8 -5
- package/dist/esm/view/LinkUrl/index.js +1 -1
- package/dist/types/view/HoverCard/components/ImagePreview.d.ts +4 -0
- package/dist/types/view/HoverCard/styled.d.ts +1 -0
- package/dist/types/view/HoverCard/types.d.ts +2 -2
- package/dist/types-ts4.5/view/HoverCard/components/ImagePreview.d.ts +4 -0
- package/dist/types-ts4.5/view/HoverCard/styled.d.ts +1 -0
- package/dist/types-ts4.5/view/HoverCard/types.d.ts +2 -2
- package/package.json +2 -2
- package/dist/es2019/view/HoverCard/components/SnippetOrPreview.js +0 -41
- package/dist/esm/view/HoverCard/components/SnippetOrPreview.js +0 -47
- package/dist/types/view/HoverCard/components/SnippetOrPreview.d.ts +0 -4
- package/dist/types-ts4.5/view/HoverCard/components/SnippetOrPreview.d.ts +0 -4
package/CHANGELOG.md
CHANGED
|
@@ -21,7 +21,7 @@ exports.ANALYTICS_CHANNEL = ANALYTICS_CHANNEL;
|
|
|
21
21
|
var context = {
|
|
22
22
|
componentName: 'smart-cards',
|
|
23
23
|
packageName: "@atlaskit/smart-card",
|
|
24
|
-
packageVersion: "26.16.
|
|
24
|
+
packageVersion: "26.16.1"
|
|
25
25
|
};
|
|
26
26
|
exports.context = context;
|
|
27
27
|
var TrackQuickActionType = /*#__PURE__*/function (TrackQuickActionType) {
|
|
@@ -6,25 +6,24 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
value: true
|
|
7
7
|
});
|
|
8
8
|
exports.default = void 0;
|
|
9
|
-
var
|
|
9
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
10
10
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
11
11
|
var _react = _interopRequireWildcard(require("react"));
|
|
12
|
-
var _react2 = require("@emotion/react");
|
|
13
12
|
var _extractPreview = _interopRequireDefault(require("../../../extractors/flexible/extract-preview"));
|
|
14
13
|
var _blocks = require("../../FlexibleCard/components/blocks");
|
|
15
14
|
var _styled = require("../styled");
|
|
16
|
-
var
|
|
15
|
+
var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
|
|
17
16
|
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); }
|
|
18
17
|
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; }
|
|
19
|
-
var
|
|
18
|
+
var ImagePreview = function ImagePreview(_ref) {
|
|
20
19
|
var data = _ref.data,
|
|
21
|
-
|
|
20
|
+
fallbackElementHeight = _ref.fallbackElementHeight;
|
|
22
21
|
var transitionStarted = (0, _react.useRef)(false);
|
|
23
22
|
var previewBlockRef = (0, _react.useRef)(null);
|
|
24
|
-
var _useState = (0, _react.useState)(
|
|
23
|
+
var _useState = (0, _react.useState)(true),
|
|
25
24
|
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
|
|
26
|
-
|
|
27
|
-
|
|
25
|
+
showPreview = _useState2[0],
|
|
26
|
+
setShowPreview = _useState2[1];
|
|
28
27
|
var _useState3 = (0, _react.useState)(),
|
|
29
28
|
_useState4 = (0, _slicedToArray2.default)(_useState3, 2),
|
|
30
29
|
previewCss = _useState4[0],
|
|
@@ -33,26 +32,29 @@ var SnippetOrPreview = function SnippetOrPreview(_ref) {
|
|
|
33
32
|
// Set Preview to a fixed height to enable transitions
|
|
34
33
|
var onPreviewRender = (0, _react.useCallback)(function () {
|
|
35
34
|
var _previewBlockRef$curr;
|
|
36
|
-
previewBlockRef.current && setPreviewCss((0,
|
|
35
|
+
previewBlockRef.current && setPreviewCss((0, _styled.getPreviewBlockStyles)((_previewBlockRef$curr = previewBlockRef.current) === null || _previewBlockRef$curr === void 0 ? void 0 : _previewBlockRef$curr.getBoundingClientRect().height));
|
|
37
36
|
}, []);
|
|
38
37
|
|
|
39
|
-
// On error set Preview to
|
|
38
|
+
// On error set Preview to Fallback height with transition
|
|
40
39
|
var onPreviewError = (0, _react.useCallback)(function () {
|
|
41
40
|
if (transitionStarted.current === false) {
|
|
42
|
-
setPreviewCss((0, _styled.getTransitionStyles)(
|
|
41
|
+
setPreviewCss((0, _styled.getTransitionStyles)(fallbackElementHeight));
|
|
43
42
|
transitionStarted.current = true;
|
|
44
43
|
}
|
|
45
|
-
}, [
|
|
44
|
+
}, [fallbackElementHeight]);
|
|
46
45
|
var onPreviewTransitionEnd = (0, _react.useCallback)(function () {
|
|
47
|
-
|
|
46
|
+
setShowPreview(false);
|
|
48
47
|
}, []);
|
|
49
|
-
return
|
|
50
|
-
onError: onPreviewError
|
|
48
|
+
return showPreview && data && (0, _extractPreview.default)(data) ? /*#__PURE__*/_react.default.createElement(_blocks.PreviewBlock, (0, _extends2.default)({
|
|
49
|
+
onError: onPreviewError
|
|
50
|
+
}, (0, _platformFeatureFlags.getBooleanFF)('platform.linking-platform.smart-card.enable-better-metadata_iojwg') && {
|
|
51
|
+
ignoreContainerPadding: true
|
|
52
|
+
}, {
|
|
51
53
|
overrideCss: previewCss,
|
|
52
54
|
onTransitionEnd: onPreviewTransitionEnd,
|
|
53
55
|
blockRef: previewBlockRef,
|
|
54
56
|
onRender: onPreviewRender
|
|
55
|
-
}) :
|
|
57
|
+
})) : null;
|
|
56
58
|
};
|
|
57
|
-
var _default =
|
|
59
|
+
var _default = ImagePreview;
|
|
58
60
|
exports.default = _default;
|
|
@@ -13,7 +13,7 @@ var _blocks = require("../../../../FlexibleCard/components/blocks");
|
|
|
13
13
|
var _styled = require("./styled");
|
|
14
14
|
var _FlexibleCard = _interopRequireDefault(require("../../../../FlexibleCard"));
|
|
15
15
|
var _utils = require("../../../utils");
|
|
16
|
-
var
|
|
16
|
+
var _ImagePreview = _interopRequireDefault(require("../../ImagePreview"));
|
|
17
17
|
var _extractMetadata = require("../../../../../extractors/hover/extractMetadata");
|
|
18
18
|
var _messages = require("../../../../../messages");
|
|
19
19
|
var _reactIntlNext = require("react-intl-next");
|
|
@@ -100,11 +100,11 @@ var HoverCardResolvedView = function HoverCardResolvedView(_ref) {
|
|
|
100
100
|
var _snippetBlockRef$curr, _snippetBlockRef$curr2;
|
|
101
101
|
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;
|
|
102
102
|
}, []);
|
|
103
|
-
var
|
|
103
|
+
var imagePreview = (0, _ImagePreview.default)({
|
|
104
104
|
data: data,
|
|
105
|
-
|
|
105
|
+
fallbackElementHeight: snippetHeight.current
|
|
106
106
|
});
|
|
107
|
-
return /*#__PURE__*/_react.default.createElement(_FlexibleCard.default, flexibleCardProps, /*#__PURE__*/_react.default.createElement(_blocks.TitleBlock, (0, _extends2.default)({}, titleBlockProps, {
|
|
107
|
+
return /*#__PURE__*/_react.default.createElement(_FlexibleCard.default, flexibleCardProps, (0, _platformFeatureFlags.getBooleanFF)('platform.linking-platform.smart-card.enable-better-metadata_iojwg') && imagePreview, /*#__PURE__*/_react.default.createElement(_blocks.TitleBlock, (0, _extends2.default)({}, titleBlockProps, {
|
|
108
108
|
metadataPosition: _constants.SmartLinkPosition.Top
|
|
109
109
|
})), /*#__PURE__*/_react.default.createElement(_blocks.MetadataBlock, (0, _extends2.default)({
|
|
110
110
|
primary: topPrimary,
|
|
@@ -114,7 +114,7 @@ var HoverCardResolvedView = function HoverCardResolvedView(_ref) {
|
|
|
114
114
|
size: _constants.SmartLinkSize.Large
|
|
115
115
|
}, (0, _platformFeatureFlags.getBooleanFF)('platform.linking-platform.smart-card.enable-better-metadata_iojwg') && {
|
|
116
116
|
size: _constants.SmartLinkSize.Medium
|
|
117
|
-
})),
|
|
117
|
+
})), !imagePreview && /*#__PURE__*/_react.default.createElement(_blocks.SnippetBlock, null), !(0, _platformFeatureFlags.getBooleanFF)('platform.linking-platform.smart-card.enable-better-metadata_iojwg') && imagePreview, /*#__PURE__*/_react.default.createElement(_blocks.SnippetBlock, {
|
|
118
118
|
testId: 'hidden-snippet',
|
|
119
119
|
onRender: onSnippetRender,
|
|
120
120
|
blockRef: snippetBlockRef,
|
|
@@ -7,8 +7,9 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
7
7
|
exports.titleBlockStyles = exports.skeletonContainer = exports.loadingViewContainer = exports.getTitleStyles = void 0;
|
|
8
8
|
var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
|
|
9
9
|
var _react = require("@emotion/react");
|
|
10
|
+
var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
|
|
10
11
|
var _templateObject, _templateObject2, _templateObject3, _templateObject4;
|
|
11
|
-
var loadingViewContainer = (0, _react.css)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n display: flex;\n flex-direction: column;\n"])));
|
|
12
|
+
var loadingViewContainer = (0, _react.css)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n display: flex;\n flex-direction: column;\n ", "\n"])), (0, _platformFeatureFlags.getBooleanFF)('platform.linking-platform.smart-card.enable-better-metadata_iojwg') ? "padding: 1rem;" : "");
|
|
12
13
|
exports.loadingViewContainer = loadingViewContainer;
|
|
13
14
|
var skeletonContainer = (0, _react.css)(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2.default)(["\n display: flex;\n flex-direction: column;\n gap: 0.625rem;\n align-items: center;\n"])));
|
|
14
15
|
exports.skeletonContainer = skeletonContainer;
|
|
@@ -4,7 +4,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
4
4
|
Object.defineProperty(exports, "__esModule", {
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
|
-
exports.titleBlockCss = exports.separatorCss = exports.popupContainerStyles = exports.getTransitionStyles = exports.flexibleUiOptions = exports.HoverCardContainer = exports.HOVER_CARD_Z_INDEX = exports.CARD_WIDTH_REM = exports.CARD_GAP_PX = void 0;
|
|
7
|
+
exports.titleBlockCss = exports.separatorCss = exports.popupContainerStyles = exports.getTransitionStyles = exports.getPreviewBlockStyles = exports.flexibleUiOptions = exports.HoverCardContainer = exports.HOVER_CARD_Z_INDEX = exports.CARD_WIDTH_REM = exports.CARD_GAP_PX = void 0;
|
|
8
8
|
var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
|
|
9
9
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
10
10
|
var _react = require("@emotion/react");
|
|
@@ -13,7 +13,7 @@ var _constants = require("../../constants");
|
|
|
13
13
|
var _constants2 = require("@atlaskit/theme/constants");
|
|
14
14
|
var _components = require("@atlaskit/theme/components");
|
|
15
15
|
var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
|
|
16
|
-
var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5;
|
|
16
|
+
var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6;
|
|
17
17
|
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
18
18
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
19
19
|
// Temporary fix for Confluence inline comment on editor mod has z-index of 500, Jira issue view has z-index of 510
|
|
@@ -23,11 +23,11 @@ var flexibleUiOptions = _objectSpread({
|
|
|
23
23
|
hideBackground: true,
|
|
24
24
|
hideElevation: true,
|
|
25
25
|
size: _constants.SmartLinkSize.Medium,
|
|
26
|
-
hidePadding: true,
|
|
27
26
|
hideHoverCardPreviewButton: false,
|
|
28
27
|
zIndex: HOVER_CARD_Z_INDEX + 1
|
|
29
28
|
}, !(0, _platformFeatureFlags.getBooleanFF)('platform.linking-platform.smart-card.enable-better-metadata_iojwg') && {
|
|
30
|
-
theme: _constants.SmartLinkTheme.Black
|
|
29
|
+
theme: _constants.SmartLinkTheme.Black,
|
|
30
|
+
hidePadding: true
|
|
31
31
|
});
|
|
32
32
|
exports.flexibleUiOptions = flexibleUiOptions;
|
|
33
33
|
var CARD_WIDTH_REM = 24;
|
|
@@ -39,7 +39,7 @@ var blockGap = '0.5rem';
|
|
|
39
39
|
var elementGap = '0.5rem';
|
|
40
40
|
var separatorCss = (0, _react.css)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n [data-separator] + [data-separator]:before {\n margin-right: ", ";\n }\n ", "\n"])), elementGap, (0, _platformFeatureFlags.getBooleanFF)('platform.linking-platform.smart-card.enable-better-metadata_iojwg') ? " [data-smart-element-avatar-group] + [data-separator]:before {\n content: '\u2022';\n margin-right: ".concat(elementGap, ";\n }") : "");
|
|
41
41
|
exports.separatorCss = separatorCss;
|
|
42
|
-
var HoverCardContainer = (0, _react.css)(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2.default)(["\n background: none;\n border-width: 0;\n box-sizing: border-box;\n width: ", "rem;\n
|
|
42
|
+
var HoverCardContainer = (0, _react.css)(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2.default)(["\n background: none;\n border-width: 0;\n box-sizing: border-box;\n width: ", "rem;\n ", "\n\n .", " {\n display: none;\n }\n"])), CARD_WIDTH_REM, !(0, _platformFeatureFlags.getBooleanFF)('platform.linking-platform.smart-card.enable-better-metadata_iojwg') ? "padding: 1rem;" : "", _index.loadingPlaceholderClassName);
|
|
43
43
|
exports.HoverCardContainer = HoverCardContainer;
|
|
44
44
|
var titleBlockCss = (0, _react.css)(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2.default)(["\n gap: ", ";\n\n ", "\n\n // title and subtitle element group\n [data-smart-element-group] {\n // gap between title and subtitle\n gap: 0.06rem;\n display: flex;\n /* subtitle element group */\n > [data-smart-element-group] {\n > span {\n margin-right: ", ";\n }\n }\n }\n\n ", "\n"])), blockGap, separatorCss, elementGap, (0, _platformFeatureFlags.getBooleanFF)('platform.linking-platform.smart-card.show-smart-links-refreshed-design') ? "[data-smart-element=\"Title\"] {\n font-weight: 600;\n }" : "");
|
|
45
45
|
exports.titleBlockCss = titleBlockCss;
|
|
@@ -54,4 +54,8 @@ var popupContainerStyles = (0, _react.css)(_templateObject5 || (_templateObject5
|
|
|
54
54
|
light: "var(--ds-shadow-overlay, 0px 8px 12px rgba(9, 30, 66, 0.15),0px 0px 1px rgba(9, 30, 66, 0.31))",
|
|
55
55
|
dark: "var(--ds-shadow-overlay, 0px 0px 0px rgba(188, 214, 240, 0.12),0px 8px 12px rgba(3, 4, 4, 0.36),0px 0px 1px rgba(3, 4, 4, 0.5))"
|
|
56
56
|
})());
|
|
57
|
-
exports.popupContainerStyles = popupContainerStyles;
|
|
57
|
+
exports.popupContainerStyles = popupContainerStyles;
|
|
58
|
+
var getPreviewBlockStyles = function getPreviewBlockStyles(snippetHeight) {
|
|
59
|
+
return (0, _react.css)(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2.default)(["\n height: ", "px;\n ", "\n"])), snippetHeight, (0, _platformFeatureFlags.getBooleanFF)('platform.linking-platform.smart-card.show-smart-links-refreshed-design') ? " border-top-left-radius: ".concat("var(--ds-border-radius-300, 12px)", ";\n border-top-right-radius: ", "var(--ds-border-radius-300, 12px)", ";\n margin-bottom: ", blockGap, ";\n }") : "");
|
|
60
|
+
};
|
|
61
|
+
exports.getPreviewBlockStyles = getPreviewBlockStyles;
|
|
@@ -18,7 +18,7 @@ var _excluded = ["href", "children", "checkSafety", "onClick", "testId"],
|
|
|
18
18
|
_excluded2 = ["isLinkSafe", "showSafetyWarningModal"];
|
|
19
19
|
var PACKAGE_DATA = {
|
|
20
20
|
packageName: "@atlaskit/smart-card",
|
|
21
|
-
packageVersion: "26.16.
|
|
21
|
+
packageVersion: "26.16.1",
|
|
22
22
|
componentName: 'linkUrl'
|
|
23
23
|
};
|
|
24
24
|
var Link = (0, _click.withLinkClickedEvent)('a');
|
|
@@ -3,7 +3,7 @@ export const ANALYTICS_CHANNEL = 'media';
|
|
|
3
3
|
export const context = {
|
|
4
4
|
componentName: 'smart-cards',
|
|
5
5
|
packageName: "@atlaskit/smart-card",
|
|
6
|
-
packageVersion: "26.16.
|
|
6
|
+
packageVersion: "26.16.1"
|
|
7
7
|
};
|
|
8
8
|
export let TrackQuickActionType = /*#__PURE__*/function (TrackQuickActionType) {
|
|
9
9
|
TrackQuickActionType["StatusUpdate"] = "StatusUpdate";
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import _extends from "@babel/runtime/helpers/extends";
|
|
2
|
+
import React, { useCallback, useState, useRef } from 'react';
|
|
3
|
+
import extractPreview from '../../../extractors/flexible/extract-preview';
|
|
4
|
+
import { PreviewBlock } from '../../FlexibleCard/components/blocks';
|
|
5
|
+
import { getTransitionStyles, getPreviewBlockStyles } from '../styled';
|
|
6
|
+
import { getBooleanFF } from '@atlaskit/platform-feature-flags';
|
|
7
|
+
const ImagePreview = ({
|
|
8
|
+
data,
|
|
9
|
+
fallbackElementHeight
|
|
10
|
+
}) => {
|
|
11
|
+
const transitionStarted = useRef(false);
|
|
12
|
+
const previewBlockRef = useRef(null);
|
|
13
|
+
const [showPreview, setShowPreview] = useState(true);
|
|
14
|
+
const [previewCss, setPreviewCss] = useState();
|
|
15
|
+
|
|
16
|
+
// Set Preview to a fixed height to enable transitions
|
|
17
|
+
const onPreviewRender = useCallback(() => {
|
|
18
|
+
var _previewBlockRef$curr;
|
|
19
|
+
previewBlockRef.current && setPreviewCss(getPreviewBlockStyles((_previewBlockRef$curr = previewBlockRef.current) === null || _previewBlockRef$curr === void 0 ? void 0 : _previewBlockRef$curr.getBoundingClientRect().height));
|
|
20
|
+
}, []);
|
|
21
|
+
|
|
22
|
+
// On error set Preview to Fallback height with transition
|
|
23
|
+
const onPreviewError = useCallback(() => {
|
|
24
|
+
if (transitionStarted.current === false) {
|
|
25
|
+
setPreviewCss(getTransitionStyles(fallbackElementHeight));
|
|
26
|
+
transitionStarted.current = true;
|
|
27
|
+
}
|
|
28
|
+
}, [fallbackElementHeight]);
|
|
29
|
+
const onPreviewTransitionEnd = useCallback(() => {
|
|
30
|
+
setShowPreview(false);
|
|
31
|
+
}, []);
|
|
32
|
+
return showPreview && data && extractPreview(data) ? /*#__PURE__*/React.createElement(PreviewBlock, _extends({
|
|
33
|
+
onError: onPreviewError
|
|
34
|
+
}, getBooleanFF('platform.linking-platform.smart-card.enable-better-metadata_iojwg') && {
|
|
35
|
+
ignoreContainerPadding: true
|
|
36
|
+
}, {
|
|
37
|
+
overrideCss: previewCss,
|
|
38
|
+
onTransitionEnd: onPreviewTransitionEnd,
|
|
39
|
+
blockRef: previewBlockRef,
|
|
40
|
+
onRender: onPreviewRender
|
|
41
|
+
})) : null;
|
|
42
|
+
};
|
|
43
|
+
export default ImagePreview;
|
|
@@ -5,7 +5,7 @@ import { FooterBlock, MetadataBlock, SnippetBlock, TitleBlock } from '../../../.
|
|
|
5
5
|
import { footerBlockCss, hiddenSnippetStyles, metadataBlockCss } from './styled';
|
|
6
6
|
import FlexibleCard from '../../../../FlexibleCard';
|
|
7
7
|
import { getSimulatedMetadata, getSimulatedBetterMetadata } from '../../../utils';
|
|
8
|
-
import
|
|
8
|
+
import ImagePreview from '../../ImagePreview';
|
|
9
9
|
import { extractMetadata, elementNamesToItems } from '../../../../../extractors/hover/extractMetadata';
|
|
10
10
|
import { messages } from '../../../../../messages';
|
|
11
11
|
import { FormattedMessage } from 'react-intl-next';
|
|
@@ -87,11 +87,11 @@ const HoverCardResolvedView = ({
|
|
|
87
87
|
var _snippetBlockRef$curr, _snippetBlockRef$curr2;
|
|
88
88
|
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;
|
|
89
89
|
}, []);
|
|
90
|
-
const
|
|
90
|
+
const imagePreview = ImagePreview({
|
|
91
91
|
data: data,
|
|
92
|
-
|
|
92
|
+
fallbackElementHeight: snippetHeight.current
|
|
93
93
|
});
|
|
94
|
-
return /*#__PURE__*/React.createElement(FlexibleCard, flexibleCardProps, /*#__PURE__*/React.createElement(TitleBlock, _extends({}, titleBlockProps, {
|
|
94
|
+
return /*#__PURE__*/React.createElement(FlexibleCard, flexibleCardProps, getBooleanFF('platform.linking-platform.smart-card.enable-better-metadata_iojwg') && imagePreview, /*#__PURE__*/React.createElement(TitleBlock, _extends({}, titleBlockProps, {
|
|
95
95
|
metadataPosition: SmartLinkPosition.Top
|
|
96
96
|
})), /*#__PURE__*/React.createElement(MetadataBlock, _extends({
|
|
97
97
|
primary: topPrimary,
|
|
@@ -101,7 +101,7 @@ const HoverCardResolvedView = ({
|
|
|
101
101
|
size: SmartLinkSize.Large
|
|
102
102
|
}, getBooleanFF('platform.linking-platform.smart-card.enable-better-metadata_iojwg') && {
|
|
103
103
|
size: SmartLinkSize.Medium
|
|
104
|
-
})),
|
|
104
|
+
})), !imagePreview && /*#__PURE__*/React.createElement(SnippetBlock, null), !getBooleanFF('platform.linking-platform.smart-card.enable-better-metadata_iojwg') && imagePreview, /*#__PURE__*/React.createElement(SnippetBlock, {
|
|
105
105
|
testId: 'hidden-snippet',
|
|
106
106
|
onRender: onSnippetRender,
|
|
107
107
|
blockRef: snippetBlockRef,
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import { css } from '@emotion/react';
|
|
2
|
+
import { getBooleanFF } from '@atlaskit/platform-feature-flags';
|
|
2
3
|
export const loadingViewContainer = css`
|
|
3
4
|
display: flex;
|
|
4
5
|
flex-direction: column;
|
|
6
|
+
${getBooleanFF('platform.linking-platform.smart-card.enable-better-metadata_iojwg') ? `padding: 1rem;` : ``}
|
|
5
7
|
`;
|
|
6
8
|
export const skeletonContainer = css`
|
|
7
9
|
display: flex;
|
|
@@ -11,11 +11,11 @@ export const flexibleUiOptions = {
|
|
|
11
11
|
hideBackground: true,
|
|
12
12
|
hideElevation: true,
|
|
13
13
|
size: SmartLinkSize.Medium,
|
|
14
|
-
hidePadding: true,
|
|
15
14
|
hideHoverCardPreviewButton: false,
|
|
16
15
|
zIndex: HOVER_CARD_Z_INDEX + 1,
|
|
17
16
|
...(!getBooleanFF('platform.linking-platform.smart-card.enable-better-metadata_iojwg') && {
|
|
18
|
-
theme: SmartLinkTheme.Black
|
|
17
|
+
theme: SmartLinkTheme.Black,
|
|
18
|
+
hidePadding: true
|
|
19
19
|
})
|
|
20
20
|
};
|
|
21
21
|
export const CARD_WIDTH_REM = 24;
|
|
@@ -37,7 +37,7 @@ export const HoverCardContainer = css`
|
|
|
37
37
|
border-width: 0;
|
|
38
38
|
box-sizing: border-box;
|
|
39
39
|
width: ${CARD_WIDTH_REM}rem;
|
|
40
|
-
padding: 1rem
|
|
40
|
+
${!getBooleanFF('platform.linking-platform.smart-card.enable-better-metadata_iojwg') ? `padding: 1rem;` : ``}
|
|
41
41
|
|
|
42
42
|
.${loadingPlaceholderClassName} {
|
|
43
43
|
display: none;
|
|
@@ -79,4 +79,11 @@ export const popupContainerStyles = css`
|
|
|
79
79
|
light: "var(--ds-shadow-overlay, 0px 8px 12px rgba(9, 30, 66, 0.15),0px 0px 1px rgba(9, 30, 66, 0.31))",
|
|
80
80
|
dark: "var(--ds-shadow-overlay, 0px 0px 0px rgba(188, 214, 240, 0.12),0px 8px 12px rgba(3, 4, 4, 0.36),0px 0px 1px rgba(3, 4, 4, 0.5))"
|
|
81
81
|
})()};
|
|
82
|
+
`;
|
|
83
|
+
export const getPreviewBlockStyles = snippetHeight => css`
|
|
84
|
+
height: ${snippetHeight}px;
|
|
85
|
+
${getBooleanFF('platform.linking-platform.smart-card.show-smart-links-refreshed-design') ? ` border-top-left-radius: ${"var(--ds-border-radius-300, 12px)"};
|
|
86
|
+
border-top-right-radius: ${"var(--ds-border-radius-300, 12px)"};
|
|
87
|
+
margin-bottom: ${blockGap};
|
|
88
|
+
}` : ``}
|
|
82
89
|
`;
|
|
@@ -8,7 +8,7 @@ import LinkWarningModal from './LinkWarningModal';
|
|
|
8
8
|
import { getBooleanFF } from '@atlaskit/platform-feature-flags';
|
|
9
9
|
const PACKAGE_DATA = {
|
|
10
10
|
packageName: "@atlaskit/smart-card",
|
|
11
|
-
packageVersion: "26.16.
|
|
11
|
+
packageVersion: "26.16.1",
|
|
12
12
|
componentName: 'linkUrl'
|
|
13
13
|
};
|
|
14
14
|
const Link = withLinkClickedEvent('a');
|
|
@@ -13,7 +13,7 @@ export var ANALYTICS_CHANNEL = 'media';
|
|
|
13
13
|
export var context = {
|
|
14
14
|
componentName: 'smart-cards',
|
|
15
15
|
packageName: "@atlaskit/smart-card",
|
|
16
|
-
packageVersion: "26.16.
|
|
16
|
+
packageVersion: "26.16.1"
|
|
17
17
|
};
|
|
18
18
|
export var TrackQuickActionType = /*#__PURE__*/function (TrackQuickActionType) {
|
|
19
19
|
TrackQuickActionType["StatusUpdate"] = "StatusUpdate";
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import _extends from "@babel/runtime/helpers/extends";
|
|
2
|
+
import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
|
|
3
|
+
import React, { useCallback, useState, useRef } from 'react';
|
|
4
|
+
import extractPreview from '../../../extractors/flexible/extract-preview';
|
|
5
|
+
import { PreviewBlock } from '../../FlexibleCard/components/blocks';
|
|
6
|
+
import { getTransitionStyles, getPreviewBlockStyles } from '../styled';
|
|
7
|
+
import { getBooleanFF } from '@atlaskit/platform-feature-flags';
|
|
8
|
+
var ImagePreview = function ImagePreview(_ref) {
|
|
9
|
+
var data = _ref.data,
|
|
10
|
+
fallbackElementHeight = _ref.fallbackElementHeight;
|
|
11
|
+
var transitionStarted = useRef(false);
|
|
12
|
+
var previewBlockRef = useRef(null);
|
|
13
|
+
var _useState = useState(true),
|
|
14
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
15
|
+
showPreview = _useState2[0],
|
|
16
|
+
setShowPreview = _useState2[1];
|
|
17
|
+
var _useState3 = useState(),
|
|
18
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
|
19
|
+
previewCss = _useState4[0],
|
|
20
|
+
setPreviewCss = _useState4[1];
|
|
21
|
+
|
|
22
|
+
// Set Preview to a fixed height to enable transitions
|
|
23
|
+
var onPreviewRender = useCallback(function () {
|
|
24
|
+
var _previewBlockRef$curr;
|
|
25
|
+
previewBlockRef.current && setPreviewCss(getPreviewBlockStyles((_previewBlockRef$curr = previewBlockRef.current) === null || _previewBlockRef$curr === void 0 ? void 0 : _previewBlockRef$curr.getBoundingClientRect().height));
|
|
26
|
+
}, []);
|
|
27
|
+
|
|
28
|
+
// On error set Preview to Fallback height with transition
|
|
29
|
+
var onPreviewError = useCallback(function () {
|
|
30
|
+
if (transitionStarted.current === false) {
|
|
31
|
+
setPreviewCss(getTransitionStyles(fallbackElementHeight));
|
|
32
|
+
transitionStarted.current = true;
|
|
33
|
+
}
|
|
34
|
+
}, [fallbackElementHeight]);
|
|
35
|
+
var onPreviewTransitionEnd = useCallback(function () {
|
|
36
|
+
setShowPreview(false);
|
|
37
|
+
}, []);
|
|
38
|
+
return showPreview && data && extractPreview(data) ? /*#__PURE__*/React.createElement(PreviewBlock, _extends({
|
|
39
|
+
onError: onPreviewError
|
|
40
|
+
}, getBooleanFF('platform.linking-platform.smart-card.enable-better-metadata_iojwg') && {
|
|
41
|
+
ignoreContainerPadding: true
|
|
42
|
+
}, {
|
|
43
|
+
overrideCss: previewCss,
|
|
44
|
+
onTransitionEnd: onPreviewTransitionEnd,
|
|
45
|
+
blockRef: previewBlockRef,
|
|
46
|
+
onRender: onPreviewRender
|
|
47
|
+
})) : null;
|
|
48
|
+
};
|
|
49
|
+
export default ImagePreview;
|
|
@@ -5,7 +5,7 @@ import { FooterBlock, MetadataBlock, SnippetBlock, TitleBlock } from '../../../.
|
|
|
5
5
|
import { footerBlockCss, hiddenSnippetStyles, metadataBlockCss } from './styled';
|
|
6
6
|
import FlexibleCard from '../../../../FlexibleCard';
|
|
7
7
|
import { getSimulatedMetadata, getSimulatedBetterMetadata } from '../../../utils';
|
|
8
|
-
import
|
|
8
|
+
import ImagePreview from '../../ImagePreview';
|
|
9
9
|
import { extractMetadata, elementNamesToItems } from '../../../../../extractors/hover/extractMetadata';
|
|
10
10
|
import { messages } from '../../../../../messages';
|
|
11
11
|
import { FormattedMessage } from 'react-intl-next';
|
|
@@ -89,11 +89,11 @@ var HoverCardResolvedView = function HoverCardResolvedView(_ref) {
|
|
|
89
89
|
var _snippetBlockRef$curr, _snippetBlockRef$curr2;
|
|
90
90
|
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;
|
|
91
91
|
}, []);
|
|
92
|
-
var
|
|
92
|
+
var imagePreview = ImagePreview({
|
|
93
93
|
data: data,
|
|
94
|
-
|
|
94
|
+
fallbackElementHeight: snippetHeight.current
|
|
95
95
|
});
|
|
96
|
-
return /*#__PURE__*/React.createElement(FlexibleCard, flexibleCardProps, /*#__PURE__*/React.createElement(TitleBlock, _extends({}, titleBlockProps, {
|
|
96
|
+
return /*#__PURE__*/React.createElement(FlexibleCard, flexibleCardProps, getBooleanFF('platform.linking-platform.smart-card.enable-better-metadata_iojwg') && imagePreview, /*#__PURE__*/React.createElement(TitleBlock, _extends({}, titleBlockProps, {
|
|
97
97
|
metadataPosition: SmartLinkPosition.Top
|
|
98
98
|
})), /*#__PURE__*/React.createElement(MetadataBlock, _extends({
|
|
99
99
|
primary: topPrimary,
|
|
@@ -103,7 +103,7 @@ var HoverCardResolvedView = function HoverCardResolvedView(_ref) {
|
|
|
103
103
|
size: SmartLinkSize.Large
|
|
104
104
|
}, getBooleanFF('platform.linking-platform.smart-card.enable-better-metadata_iojwg') && {
|
|
105
105
|
size: SmartLinkSize.Medium
|
|
106
|
-
})),
|
|
106
|
+
})), !imagePreview && /*#__PURE__*/React.createElement(SnippetBlock, null), !getBooleanFF('platform.linking-platform.smart-card.enable-better-metadata_iojwg') && imagePreview, /*#__PURE__*/React.createElement(SnippetBlock, {
|
|
107
107
|
testId: 'hidden-snippet',
|
|
108
108
|
onRender: onSnippetRender,
|
|
109
109
|
blockRef: snippetBlockRef,
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import _taggedTemplateLiteral from "@babel/runtime/helpers/taggedTemplateLiteral";
|
|
2
2
|
var _templateObject, _templateObject2, _templateObject3, _templateObject4;
|
|
3
3
|
import { css } from '@emotion/react';
|
|
4
|
-
|
|
4
|
+
import { getBooleanFF } from '@atlaskit/platform-feature-flags';
|
|
5
|
+
export var loadingViewContainer = css(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n display: flex;\n flex-direction: column;\n ", "\n"])), getBooleanFF('platform.linking-platform.smart-card.enable-better-metadata_iojwg') ? "padding: 1rem;" : "");
|
|
5
6
|
export var skeletonContainer = css(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n display: flex;\n flex-direction: column;\n gap: 0.625rem;\n align-items: center;\n"])));
|
|
6
7
|
export var getTitleStyles = function getTitleStyles(height) {
|
|
7
8
|
return css(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["\n flex: 1 0 auto;\n height: ", "rem;\n\n span {\n width: 100%;\n }\n "])), height);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import _taggedTemplateLiteral from "@babel/runtime/helpers/taggedTemplateLiteral";
|
|
2
2
|
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
3
|
-
var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5;
|
|
3
|
+
var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6;
|
|
4
4
|
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
5
5
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
6
6
|
import { css } from '@emotion/react';
|
|
@@ -16,11 +16,11 @@ export var flexibleUiOptions = _objectSpread({
|
|
|
16
16
|
hideBackground: true,
|
|
17
17
|
hideElevation: true,
|
|
18
18
|
size: SmartLinkSize.Medium,
|
|
19
|
-
hidePadding: true,
|
|
20
19
|
hideHoverCardPreviewButton: false,
|
|
21
20
|
zIndex: HOVER_CARD_Z_INDEX + 1
|
|
22
21
|
}, !getBooleanFF('platform.linking-platform.smart-card.enable-better-metadata_iojwg') && {
|
|
23
|
-
theme: SmartLinkTheme.Black
|
|
22
|
+
theme: SmartLinkTheme.Black,
|
|
23
|
+
hidePadding: true
|
|
24
24
|
});
|
|
25
25
|
export var CARD_WIDTH_REM = 24;
|
|
26
26
|
// gap between mouse cursor and hover card
|
|
@@ -28,7 +28,7 @@ export var CARD_GAP_PX = 10;
|
|
|
28
28
|
var blockGap = '0.5rem';
|
|
29
29
|
var elementGap = '0.5rem';
|
|
30
30
|
export var separatorCss = css(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n [data-separator] + [data-separator]:before {\n margin-right: ", ";\n }\n ", "\n"])), elementGap, getBooleanFF('platform.linking-platform.smart-card.enable-better-metadata_iojwg') ? " [data-smart-element-avatar-group] + [data-separator]:before {\n content: '\u2022';\n margin-right: ".concat(elementGap, ";\n }") : "");
|
|
31
|
-
export var HoverCardContainer = css(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n background: none;\n border-width: 0;\n box-sizing: border-box;\n width: ", "rem;\n
|
|
31
|
+
export var HoverCardContainer = css(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n background: none;\n border-width: 0;\n box-sizing: border-box;\n width: ", "rem;\n ", "\n\n .", " {\n display: none;\n }\n"])), CARD_WIDTH_REM, !getBooleanFF('platform.linking-platform.smart-card.enable-better-metadata_iojwg') ? "padding: 1rem;" : "", loadingPlaceholderClassName);
|
|
32
32
|
export var titleBlockCss = css(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["\n gap: ", ";\n\n ", "\n\n // title and subtitle element group\n [data-smart-element-group] {\n // gap between title and subtitle\n gap: 0.06rem;\n display: flex;\n /* subtitle element group */\n > [data-smart-element-group] {\n > span {\n margin-right: ", ";\n }\n }\n }\n\n ", "\n"])), blockGap, separatorCss, elementGap, getBooleanFF('platform.linking-platform.smart-card.show-smart-links-refreshed-design') ? "[data-smart-element=\"Title\"] {\n font-weight: 600;\n }" : "");
|
|
33
33
|
export var getTransitionStyles = function getTransitionStyles(snippetHeight) {
|
|
34
34
|
return css(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["\n transition: height 300ms ease-in-out;\n height: ", "px;\n"])), snippetHeight);
|
|
@@ -39,4 +39,7 @@ export var popupContainerStyles = css(_templateObject5 || (_templateObject5 = _t
|
|
|
39
39
|
})(), themed({
|
|
40
40
|
light: "var(--ds-shadow-overlay, 0px 8px 12px rgba(9, 30, 66, 0.15),0px 0px 1px rgba(9, 30, 66, 0.31))",
|
|
41
41
|
dark: "var(--ds-shadow-overlay, 0px 0px 0px rgba(188, 214, 240, 0.12),0px 8px 12px rgba(3, 4, 4, 0.36),0px 0px 1px rgba(3, 4, 4, 0.5))"
|
|
42
|
-
})());
|
|
42
|
+
})());
|
|
43
|
+
export var getPreviewBlockStyles = function getPreviewBlockStyles(snippetHeight) {
|
|
44
|
+
return css(_templateObject6 || (_templateObject6 = _taggedTemplateLiteral(["\n height: ", "px;\n ", "\n"])), snippetHeight, getBooleanFF('platform.linking-platform.smart-card.show-smart-links-refreshed-design') ? " border-top-left-radius: ".concat("var(--ds-border-radius-300, 12px)", ";\n border-top-right-radius: ", "var(--ds-border-radius-300, 12px)", ";\n margin-bottom: ", blockGap, ";\n }") : "");
|
|
45
|
+
};
|
|
@@ -11,7 +11,7 @@ import LinkWarningModal from './LinkWarningModal';
|
|
|
11
11
|
import { getBooleanFF } from '@atlaskit/platform-feature-flags';
|
|
12
12
|
var PACKAGE_DATA = {
|
|
13
13
|
packageName: "@atlaskit/smart-card",
|
|
14
|
-
packageVersion: "26.16.
|
|
14
|
+
packageVersion: "26.16.1",
|
|
15
15
|
componentName: 'linkUrl'
|
|
16
16
|
};
|
|
17
17
|
var Link = withLinkClickedEvent('a');
|
|
@@ -8,3 +8,4 @@ export declare const HoverCardContainer: import("@emotion/react").SerializedStyl
|
|
|
8
8
|
export declare const titleBlockCss: import("@emotion/react").SerializedStyles;
|
|
9
9
|
export declare const getTransitionStyles: (snippetHeight: number) => import("@emotion/react").SerializedStyles;
|
|
10
10
|
export declare const popupContainerStyles: import("@emotion/react").SerializedStyles;
|
|
11
|
+
export declare const getPreviewBlockStyles: (snippetHeight: number) => import("@emotion/react").SerializedStyles;
|
|
@@ -92,7 +92,7 @@ export type HoverCardContentProps = {
|
|
|
92
92
|
onMouseLeave?: MouseEventHandler;
|
|
93
93
|
showServerActions?: boolean;
|
|
94
94
|
};
|
|
95
|
-
export type
|
|
95
|
+
export type ImagePreviewProps = {
|
|
96
96
|
data: JsonLd.Data.BaseData;
|
|
97
|
-
|
|
97
|
+
fallbackElementHeight: number;
|
|
98
98
|
};
|
|
@@ -8,3 +8,4 @@ export declare const HoverCardContainer: import("@emotion/react").SerializedStyl
|
|
|
8
8
|
export declare const titleBlockCss: import("@emotion/react").SerializedStyles;
|
|
9
9
|
export declare const getTransitionStyles: (snippetHeight: number) => import("@emotion/react").SerializedStyles;
|
|
10
10
|
export declare const popupContainerStyles: import("@emotion/react").SerializedStyles;
|
|
11
|
+
export declare const getPreviewBlockStyles: (snippetHeight: number) => import("@emotion/react").SerializedStyles;
|
|
@@ -92,7 +92,7 @@ export type HoverCardContentProps = {
|
|
|
92
92
|
onMouseLeave?: MouseEventHandler;
|
|
93
93
|
showServerActions?: boolean;
|
|
94
94
|
};
|
|
95
|
-
export type
|
|
95
|
+
export type ImagePreviewProps = {
|
|
96
96
|
data: JsonLd.Data.BaseData;
|
|
97
|
-
|
|
97
|
+
fallbackElementHeight: number;
|
|
98
98
|
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@atlaskit/smart-card",
|
|
3
|
-
"version": "26.16.
|
|
3
|
+
"version": "26.16.1",
|
|
4
4
|
"description": "Smart card component",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"registry": "https://registry.npmjs.org/"
|
|
@@ -48,7 +48,7 @@
|
|
|
48
48
|
"@atlaskit/popup": "^1.9.0",
|
|
49
49
|
"@atlaskit/spinner": "^15.5.0",
|
|
50
50
|
"@atlaskit/theme": "^12.5.0",
|
|
51
|
-
"@atlaskit/tokens": "^1.
|
|
51
|
+
"@atlaskit/tokens": "^1.16.0",
|
|
52
52
|
"@atlaskit/tooltip": "^17.8.0",
|
|
53
53
|
"@atlaskit/ufo": "^0.2.0",
|
|
54
54
|
"@babel/runtime": "^7.0.0",
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
import React, { useCallback, useState, useRef } from 'react';
|
|
2
|
-
import { css } from '@emotion/react';
|
|
3
|
-
import extractPreview from '../../../extractors/flexible/extract-preview';
|
|
4
|
-
import { PreviewBlock, SnippetBlock } from '../../FlexibleCard/components/blocks';
|
|
5
|
-
import { getTransitionStyles } from '../styled';
|
|
6
|
-
const SnippetOrPreview = ({
|
|
7
|
-
data,
|
|
8
|
-
snippetHeight
|
|
9
|
-
}) => {
|
|
10
|
-
const transitionStarted = useRef(false);
|
|
11
|
-
const previewBlockRef = useRef(null);
|
|
12
|
-
const [showSnippet, setShowSnippet] = useState(false);
|
|
13
|
-
const [previewCss, setPreviewCss] = useState();
|
|
14
|
-
|
|
15
|
-
// Set Preview to a fixed height to enable transitions
|
|
16
|
-
const onPreviewRender = useCallback(() => {
|
|
17
|
-
var _previewBlockRef$curr;
|
|
18
|
-
previewBlockRef.current && setPreviewCss(css`
|
|
19
|
-
height: ${(_previewBlockRef$curr = previewBlockRef.current) === null || _previewBlockRef$curr === void 0 ? void 0 : _previewBlockRef$curr.getBoundingClientRect().height}px;
|
|
20
|
-
`);
|
|
21
|
-
}, []);
|
|
22
|
-
|
|
23
|
-
// On error set Preview to Snippet height with transition
|
|
24
|
-
const onPreviewError = useCallback(() => {
|
|
25
|
-
if (transitionStarted.current === false) {
|
|
26
|
-
setPreviewCss(getTransitionStyles(snippetHeight));
|
|
27
|
-
transitionStarted.current = true;
|
|
28
|
-
}
|
|
29
|
-
}, [snippetHeight]);
|
|
30
|
-
const onPreviewTransitionEnd = useCallback(() => {
|
|
31
|
-
setShowSnippet(true);
|
|
32
|
-
}, []);
|
|
33
|
-
return !showSnippet && data && extractPreview(data) ? /*#__PURE__*/React.createElement(PreviewBlock, {
|
|
34
|
-
onError: onPreviewError,
|
|
35
|
-
overrideCss: previewCss,
|
|
36
|
-
onTransitionEnd: onPreviewTransitionEnd,
|
|
37
|
-
blockRef: previewBlockRef,
|
|
38
|
-
onRender: onPreviewRender
|
|
39
|
-
}) : /*#__PURE__*/React.createElement(SnippetBlock, null);
|
|
40
|
-
};
|
|
41
|
-
export default SnippetOrPreview;
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
import _taggedTemplateLiteral from "@babel/runtime/helpers/taggedTemplateLiteral";
|
|
2
|
-
import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
|
|
3
|
-
var _templateObject;
|
|
4
|
-
import React, { useCallback, useState, useRef } from 'react';
|
|
5
|
-
import { css } from '@emotion/react';
|
|
6
|
-
import extractPreview from '../../../extractors/flexible/extract-preview';
|
|
7
|
-
import { PreviewBlock, SnippetBlock } from '../../FlexibleCard/components/blocks';
|
|
8
|
-
import { getTransitionStyles } from '../styled';
|
|
9
|
-
var SnippetOrPreview = function SnippetOrPreview(_ref) {
|
|
10
|
-
var data = _ref.data,
|
|
11
|
-
snippetHeight = _ref.snippetHeight;
|
|
12
|
-
var transitionStarted = useRef(false);
|
|
13
|
-
var previewBlockRef = useRef(null);
|
|
14
|
-
var _useState = useState(false),
|
|
15
|
-
_useState2 = _slicedToArray(_useState, 2),
|
|
16
|
-
showSnippet = _useState2[0],
|
|
17
|
-
setShowSnippet = _useState2[1];
|
|
18
|
-
var _useState3 = useState(),
|
|
19
|
-
_useState4 = _slicedToArray(_useState3, 2),
|
|
20
|
-
previewCss = _useState4[0],
|
|
21
|
-
setPreviewCss = _useState4[1];
|
|
22
|
-
|
|
23
|
-
// Set Preview to a fixed height to enable transitions
|
|
24
|
-
var onPreviewRender = useCallback(function () {
|
|
25
|
-
var _previewBlockRef$curr;
|
|
26
|
-
previewBlockRef.current && setPreviewCss(css(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n height: ", "px;\n "])), (_previewBlockRef$curr = previewBlockRef.current) === null || _previewBlockRef$curr === void 0 ? void 0 : _previewBlockRef$curr.getBoundingClientRect().height));
|
|
27
|
-
}, []);
|
|
28
|
-
|
|
29
|
-
// On error set Preview to Snippet height with transition
|
|
30
|
-
var onPreviewError = useCallback(function () {
|
|
31
|
-
if (transitionStarted.current === false) {
|
|
32
|
-
setPreviewCss(getTransitionStyles(snippetHeight));
|
|
33
|
-
transitionStarted.current = true;
|
|
34
|
-
}
|
|
35
|
-
}, [snippetHeight]);
|
|
36
|
-
var onPreviewTransitionEnd = useCallback(function () {
|
|
37
|
-
setShowSnippet(true);
|
|
38
|
-
}, []);
|
|
39
|
-
return !showSnippet && data && extractPreview(data) ? /*#__PURE__*/React.createElement(PreviewBlock, {
|
|
40
|
-
onError: onPreviewError,
|
|
41
|
-
overrideCss: previewCss,
|
|
42
|
-
onTransitionEnd: onPreviewTransitionEnd,
|
|
43
|
-
blockRef: previewBlockRef,
|
|
44
|
-
onRender: onPreviewRender
|
|
45
|
-
}) : /*#__PURE__*/React.createElement(SnippetBlock, null);
|
|
46
|
-
};
|
|
47
|
-
export default SnippetOrPreview;
|