@atlaskit/smart-card 23.5.2 → 23.6.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 +10 -0
- package/dist/cjs/version.json +1 -1
- package/dist/cjs/view/CardWithUrl/component.js +4 -1
- package/dist/cjs/view/EmbedCard/views/UnauthorisedView.js +5 -16
- package/dist/cjs/view/HoverCard/components/HoverCardComponent.js +4 -2
- package/dist/cjs/view/HoverCard/components/HoverCardContent.js +30 -92
- package/dist/cjs/view/HoverCard/components/views/resolved/index.js +134 -0
- package/dist/cjs/view/HoverCard/components/views/resolved/styled.js +24 -0
- package/dist/cjs/view/HoverCard/components/views/resolved/types.js +5 -0
- package/dist/cjs/view/HoverCard/components/{HoverCardLoadingView.js → views/resolving/index.js} +8 -6
- package/dist/cjs/view/HoverCard/components/views/resolving/styled.js +19 -0
- package/dist/cjs/view/HoverCard/components/views/resolving/types.js +5 -0
- package/dist/cjs/view/HoverCard/components/views/unauthorised/index.js +85 -0
- package/dist/cjs/view/HoverCard/components/views/unauthorised/styled.js +24 -0
- package/dist/cjs/view/HoverCard/components/views/unauthorised/types.js +5 -0
- package/dist/cjs/view/HoverCard/styled.js +4 -13
- package/dist/cjs/view/InlineCard/UnauthorisedView/index.js +16 -2
- package/dist/cjs/view/InlineCard/index.js +4 -2
- package/dist/cjs/view/common/UnauthorisedViewContent.js +40 -0
- package/dist/es2019/version.json +1 -1
- package/dist/es2019/view/CardWithUrl/component.js +4 -1
- package/dist/es2019/view/EmbedCard/views/UnauthorisedView.js +5 -13
- package/dist/es2019/view/HoverCard/components/HoverCardComponent.js +4 -2
- package/dist/es2019/view/HoverCard/components/HoverCardContent.js +28 -76
- package/dist/es2019/view/HoverCard/components/views/resolved/index.js +96 -0
- package/dist/es2019/view/HoverCard/components/views/resolved/styled.js +34 -0
- package/dist/es2019/view/HoverCard/components/views/resolved/types.js +1 -0
- package/dist/es2019/view/HoverCard/components/{HoverCardLoadingView.js → views/resolving/index.js} +5 -4
- package/dist/es2019/view/HoverCard/components/views/resolving/styled.js +11 -0
- package/dist/es2019/view/HoverCard/components/views/resolving/types.js +1 -0
- package/dist/es2019/view/HoverCard/components/views/unauthorised/index.js +58 -0
- package/dist/es2019/view/HoverCard/components/views/unauthorised/styled.js +18 -0
- package/dist/es2019/view/HoverCard/components/views/unauthorised/types.js +1 -0
- package/dist/es2019/view/HoverCard/styled.js +1 -42
- package/dist/es2019/view/InlineCard/UnauthorisedView/index.js +13 -2
- package/dist/es2019/view/InlineCard/index.js +4 -2
- package/dist/es2019/view/common/UnauthorisedViewContent.js +24 -0
- package/dist/esm/version.json +1 -1
- package/dist/esm/view/CardWithUrl/component.js +4 -1
- package/dist/esm/view/EmbedCard/views/UnauthorisedView.js +5 -13
- package/dist/esm/view/HoverCard/components/HoverCardComponent.js +4 -2
- package/dist/esm/view/HoverCard/components/HoverCardContent.js +29 -83
- package/dist/esm/view/HoverCard/components/views/resolved/index.js +104 -0
- package/dist/esm/view/HoverCard/components/views/resolved/styled.js +10 -0
- package/dist/esm/view/HoverCard/components/views/resolved/types.js +1 -0
- package/dist/esm/view/HoverCard/components/{HoverCardLoadingView.js → views/resolving/index.js} +5 -4
- package/dist/esm/view/HoverCard/components/views/resolving/styled.js +7 -0
- package/dist/esm/view/HoverCard/components/views/resolving/types.js +1 -0
- package/dist/esm/view/HoverCard/components/views/unauthorised/index.js +58 -0
- package/dist/esm/view/HoverCard/components/views/unauthorised/styled.js +11 -0
- package/dist/esm/view/HoverCard/components/views/unauthorised/types.js +1 -0
- package/dist/esm/view/HoverCard/styled.js +3 -8
- package/dist/esm/view/InlineCard/UnauthorisedView/index.js +14 -2
- package/dist/esm/view/InlineCard/index.js +4 -2
- package/dist/esm/view/common/UnauthorisedViewContent.js +26 -0
- package/dist/types/view/HoverCard/components/HoverCardContent.d.ts +0 -2
- package/dist/types/view/HoverCard/components/views/resolved/index.d.ts +7 -0
- package/dist/types/view/HoverCard/components/views/resolved/styled.d.ts +3 -0
- package/dist/types/view/HoverCard/components/views/resolved/types.d.ts +13 -0
- package/dist/types/view/HoverCard/components/{HoverCardLoadingView.d.ts → views/resolving/index.d.ts} +1 -1
- package/dist/types/view/HoverCard/components/views/resolving/styled.d.ts +2 -0
- package/dist/types/view/HoverCard/components/views/resolving/types.d.ts +6 -0
- package/dist/types/view/HoverCard/components/views/unauthorised/index.d.ts +4 -0
- package/dist/types/view/HoverCard/components/views/unauthorised/styled.d.ts +3 -0
- package/dist/types/view/HoverCard/components/views/unauthorised/types.d.ts +19 -0
- package/dist/types/view/HoverCard/index.d.ts +1 -1
- package/dist/types/view/HoverCard/styled.d.ts +1 -5
- package/dist/types/view/HoverCard/types.d.ts +3 -6
- package/dist/types/view/InlineCard/UnauthorisedView/index.d.ts +2 -0
- package/dist/types/view/InlineCard/types.d.ts +1 -0
- package/dist/types/view/common/UnauthorisedViewContent.d.ts +20 -0
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,15 @@
|
|
|
1
1
|
# @atlaskit/smart-card
|
|
2
2
|
|
|
3
|
+
## 23.6.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- [`3626f0cc5c0`](https://bitbucket.org/atlassian/atlassian-frontend/commits/3626f0cc5c0) - [ux] An unauthorised view was implemented for Hover Card. It will show up if the link is in 'unauthorized' state and it will offer a way for a user to connect their account.
|
|
8
|
+
|
|
9
|
+
### Patch Changes
|
|
10
|
+
|
|
11
|
+
- Updated dependencies
|
|
12
|
+
|
|
3
13
|
## 23.5.2
|
|
4
14
|
|
|
5
15
|
### Patch Changes
|
package/dist/cjs/version.json
CHANGED
|
@@ -83,6 +83,8 @@ function CardWithUrlContent(_ref) {
|
|
|
83
83
|
showHoverPreview = Boolean(showHoverPreviewFlag);
|
|
84
84
|
}
|
|
85
85
|
|
|
86
|
+
var showAuthTooltipValue = (0, _linkProvider.useFeatureFlag)('showAuthTooltip');
|
|
87
|
+
var showAuthTooltip = !!showAuthTooltipValue && showAuthTooltipValue === 'experiment';
|
|
86
88
|
var enableFlexibleBlockCardFlag = Boolean((0, _linkProvider.useFeatureFlag)('enableFlexibleBlockCard')); // Setup UI handlers.
|
|
87
89
|
|
|
88
90
|
var handleClick = (0, _react.useCallback)(function (event) {
|
|
@@ -196,7 +198,8 @@ function CardWithUrlContent(_ref) {
|
|
|
196
198
|
onError: onError,
|
|
197
199
|
testId: testId,
|
|
198
200
|
inlinePreloaderStyle: inlinePreloaderStyle,
|
|
199
|
-
showHoverPreview: showHoverPreview
|
|
201
|
+
showHoverPreview: showHoverPreview,
|
|
202
|
+
showAuthTooltip: showAuthTooltip
|
|
200
203
|
});
|
|
201
204
|
|
|
202
205
|
case 'block':
|
|
@@ -7,12 +7,8 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
7
7
|
});
|
|
8
8
|
exports.EmbedCardUnauthorisedView = void 0;
|
|
9
9
|
|
|
10
|
-
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
11
|
-
|
|
12
10
|
var _react = _interopRequireDefault(require("react"));
|
|
13
11
|
|
|
14
|
-
var _reactIntlNext = require("react-intl-next");
|
|
15
|
-
|
|
16
12
|
var _UnresolvedView = require("./UnresolvedView");
|
|
17
13
|
|
|
18
14
|
var _constants = require("../constants");
|
|
@@ -21,9 +17,7 @@ var _ExpandedFrame = require("../components/ExpandedFrame");
|
|
|
21
17
|
|
|
22
18
|
var _ImageIcon = require("../components/ImageIcon");
|
|
23
19
|
|
|
24
|
-
var
|
|
25
|
-
|
|
26
|
-
var _constants2 = require("../../../constants");
|
|
20
|
+
var _UnauthorisedViewContent = _interopRequireDefault(require("../../common/UnauthorisedViewContent"));
|
|
27
21
|
|
|
28
22
|
var EmbedCardUnauthorisedView = function EmbedCardUnauthorisedView(_ref) {
|
|
29
23
|
var _context$image;
|
|
@@ -63,15 +57,10 @@ var EmbedCardUnauthorisedView = function EmbedCardUnauthorisedView(_ref) {
|
|
|
63
57
|
},
|
|
64
58
|
onClick: onAuthorise,
|
|
65
59
|
testId: testId
|
|
66
|
-
}, /*#__PURE__*/_react.default.createElement(
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
})), ' ', /*#__PURE__*/_react.default.createElement("a", {
|
|
71
|
-
href: _constants2.CONTENT_URL_SECURITY_AND_PERMISSIONS,
|
|
72
|
-
target: "_blank",
|
|
73
|
-
"data-testid": "".concat(testId, "-learn-more")
|
|
74
|
-
}, /*#__PURE__*/_react.default.createElement(_reactIntlNext.FormattedMessage, _messages.messages.learn_more_about_smart_links_security))));
|
|
60
|
+
}, /*#__PURE__*/_react.default.createElement(_UnauthorisedViewContent.default, {
|
|
61
|
+
providerName: context === null || context === void 0 ? void 0 : context.text,
|
|
62
|
+
testId: testId
|
|
63
|
+
})));
|
|
75
64
|
};
|
|
76
65
|
|
|
77
66
|
exports.EmbedCardUnauthorisedView = EmbedCardUnauthorisedView;
|
|
@@ -43,7 +43,8 @@ var HoverCardComponent = function HoverCardComponent(_ref) {
|
|
|
43
43
|
var children = _ref.children,
|
|
44
44
|
url = _ref.url,
|
|
45
45
|
analyticsHandler = _ref.analyticsHandler,
|
|
46
|
-
analytics = _ref.analytics
|
|
46
|
+
analytics = _ref.analytics,
|
|
47
|
+
onAuthorize = _ref.onAuthorize;
|
|
47
48
|
var delay = 300;
|
|
48
49
|
|
|
49
50
|
var _React$useState = _react2.default.useState(false),
|
|
@@ -160,7 +161,8 @@ var HoverCardComponent = function HoverCardComponent(_ref) {
|
|
|
160
161
|
onActionClick: onActionClick,
|
|
161
162
|
onResolve: update,
|
|
162
163
|
renderers: renderers,
|
|
163
|
-
url: url
|
|
164
|
+
url: url,
|
|
165
|
+
onAuthorize: onAuthorize
|
|
164
166
|
}));
|
|
165
167
|
},
|
|
166
168
|
trigger: function trigger(triggerProps) {
|
|
@@ -7,9 +7,7 @@ var _typeof = require("@babel/runtime/helpers/typeof");
|
|
|
7
7
|
Object.defineProperty(exports, "__esModule", {
|
|
8
8
|
value: true
|
|
9
9
|
});
|
|
10
|
-
exports.
|
|
11
|
-
|
|
12
|
-
var _linkProvider = require("@atlaskit/link-provider");
|
|
10
|
+
exports.getOpenAction = exports.default = void 0;
|
|
13
11
|
|
|
14
12
|
var _shortcut = _interopRequireDefault(require("@atlaskit/icon/glyph/shortcut"));
|
|
15
13
|
|
|
@@ -19,25 +17,21 @@ var _react = _interopRequireWildcard(require("react"));
|
|
|
19
17
|
|
|
20
18
|
var _constants = require("../../../constants");
|
|
21
19
|
|
|
22
|
-
var
|
|
23
|
-
|
|
24
|
-
var _actions = require("../../../state/actions");
|
|
20
|
+
var _extractMetadata2 = require("../../../extractors/hover/extractMetadata");
|
|
25
21
|
|
|
26
22
|
var _helpers = require("../../../state/helpers");
|
|
27
23
|
|
|
28
24
|
var _utils = require("../../../utils");
|
|
29
25
|
|
|
30
|
-
var _FlexibleCard = _interopRequireDefault(require("../../FlexibleCard"));
|
|
31
|
-
|
|
32
|
-
var _blocks = require("../../FlexibleCard/components/blocks");
|
|
33
|
-
|
|
34
26
|
var _styled = require("../styled");
|
|
35
27
|
|
|
36
28
|
var _utils2 = require("../utils");
|
|
37
29
|
|
|
38
|
-
var
|
|
30
|
+
var _resolving = _interopRequireDefault(require("./views/resolving"));
|
|
31
|
+
|
|
32
|
+
var _unauthorised = _interopRequireDefault(require("./views/unauthorised"));
|
|
39
33
|
|
|
40
|
-
var
|
|
34
|
+
var _resolved = _interopRequireDefault(require("./views/resolved"));
|
|
41
35
|
|
|
42
36
|
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); }
|
|
43
37
|
|
|
@@ -67,25 +61,6 @@ var getOpenAction = function getOpenAction(url, analytics, onActionClick) {
|
|
|
67
61
|
|
|
68
62
|
exports.getOpenAction = getOpenAction;
|
|
69
63
|
|
|
70
|
-
var toFooterActions = function toFooterActions(cardActions, onActionClick) {
|
|
71
|
-
return cardActions.map(function (action) {
|
|
72
|
-
return {
|
|
73
|
-
content: action.text,
|
|
74
|
-
name: _constants.ActionName.CustomAction,
|
|
75
|
-
onClick: function onClick() {
|
|
76
|
-
if (onActionClick) {
|
|
77
|
-
onActionClick(action.id);
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
return action.invoke();
|
|
81
|
-
},
|
|
82
|
-
testId: action.id
|
|
83
|
-
};
|
|
84
|
-
});
|
|
85
|
-
};
|
|
86
|
-
|
|
87
|
-
exports.toFooterActions = toFooterActions;
|
|
88
|
-
|
|
89
64
|
var HoverCardContent = function HoverCardContent(_ref) {
|
|
90
65
|
var _cardState$details;
|
|
91
66
|
|
|
@@ -98,20 +73,8 @@ var HoverCardContent = function HoverCardContent(_ref) {
|
|
|
98
73
|
onActionClick = _ref.onActionClick,
|
|
99
74
|
onResolve = _ref.onResolve,
|
|
100
75
|
renderers = _ref.renderers,
|
|
101
|
-
url = _ref.url
|
|
102
|
-
|
|
103
|
-
var actions = (0, _actions.useSmartCardActions)(id, url, analytics);
|
|
104
|
-
(0, _react.useEffect)(function () {
|
|
105
|
-
actions.loadMetadata();
|
|
106
|
-
}, [actions]);
|
|
107
|
-
(0, _react.useEffect)(function () {
|
|
108
|
-
// Since hover preview only render on resolved status,
|
|
109
|
-
// there is no need to check for statuses.
|
|
110
|
-
analytics.ui.renderSuccessEvent({
|
|
111
|
-
display: _utils2.SMART_CARD_ANALYTICS_DISPLAY,
|
|
112
|
-
status: cardState.status
|
|
113
|
-
});
|
|
114
|
-
}, [analytics.ui, cardState.status]);
|
|
76
|
+
url = _ref.url,
|
|
77
|
+
onAuthorize = _ref.onAuthorize;
|
|
115
78
|
var extensionKey = (0, _react.useMemo)(function () {
|
|
116
79
|
return (0, _helpers.getExtensionKey)(cardState.details);
|
|
117
80
|
}, [cardState.details]);
|
|
@@ -128,40 +91,13 @@ var HoverCardContent = function HoverCardContent(_ref) {
|
|
|
128
91
|
var titleActions = (0, _react.useMemo)(function () {
|
|
129
92
|
return [getOpenAction(url, analytics, onActionClick)];
|
|
130
93
|
}, [url, analytics, onActionClick]);
|
|
131
|
-
var footerActions = (0, _react.useMemo)(function () {
|
|
132
|
-
return toFooterActions(cardActions, onActionClick);
|
|
133
|
-
}, [cardActions, onActionClick]);
|
|
134
94
|
var data = (_cardState$details = cardState.details) === null || _cardState$details === void 0 ? void 0 : _cardState$details.data;
|
|
95
|
+
var types = data ? (0, _extractors.extractType)(data) : undefined;
|
|
135
96
|
|
|
136
|
-
var
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
var metadata = (0, _extractMetadata.extractMetadata)((0, _utils2.getSimulatedMetadata)(extensionKey, types));
|
|
140
|
-
var primary = showActionableElement ? (0, _utils2.toActionableMetadata)(onActionClick, extensionKey, types, cardActions, metadata.primary) : metadata.primary;
|
|
141
|
-
return {
|
|
142
|
-
primary: primary,
|
|
143
|
-
secondary: metadata.secondary,
|
|
144
|
-
subtitle: metadata.subtitle
|
|
145
|
-
};
|
|
146
|
-
}, [cardActions, data, extensionKey, onActionClick, showActionableElement]),
|
|
147
|
-
primary = _useMemo.primary,
|
|
148
|
-
secondary = _useMemo.secondary,
|
|
149
|
-
subtitle = _useMemo.subtitle;
|
|
97
|
+
var _extractMetadata = (0, _extractMetadata2.extractMetadata)((0, _utils2.getSimulatedMetadata)(extensionKey, types)),
|
|
98
|
+
subtitle = _extractMetadata.subtitle;
|
|
150
99
|
|
|
151
100
|
var titleMaxLines = subtitle && subtitle.length > 0 ? 1 : 2;
|
|
152
|
-
|
|
153
|
-
var snippetHeight = _react.default.useRef(0);
|
|
154
|
-
|
|
155
|
-
var snippetBlockRef = (0, _react.useRef)(null);
|
|
156
|
-
var onSnippetRender = (0, _react.useCallback)(function () {
|
|
157
|
-
var _snippetBlockRef$curr, _snippetBlockRef$curr2;
|
|
158
|
-
|
|
159
|
-
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;
|
|
160
|
-
}, []);
|
|
161
|
-
var body = (0, _SnippetOrPreview.default)({
|
|
162
|
-
data: data,
|
|
163
|
-
snippetHeight: snippetHeight.current
|
|
164
|
-
});
|
|
165
101
|
var titleBlockProps = {
|
|
166
102
|
actions: titleActions,
|
|
167
103
|
maxLines: titleMaxLines,
|
|
@@ -181,29 +117,31 @@ var HoverCardContent = function HoverCardContent(_ref) {
|
|
|
181
117
|
};
|
|
182
118
|
|
|
183
119
|
if (cardState.metadataStatus === 'pending') {
|
|
184
|
-
return /*#__PURE__*/_react.default.createElement(
|
|
120
|
+
return /*#__PURE__*/_react.default.createElement(_resolving.default, {
|
|
185
121
|
flexibleCardProps: flexibleCardProps,
|
|
186
122
|
titleBlockProps: titleBlockProps
|
|
187
123
|
});
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
if (cardState.status === 'unauthorized') {
|
|
127
|
+
return /*#__PURE__*/_react.default.createElement(_unauthorised.default, {
|
|
128
|
+
flexibleCardProps: flexibleCardProps,
|
|
129
|
+
onAuthorize: onAuthorize
|
|
130
|
+
});
|
|
188
131
|
} // if metadataStatus is 'errored' simply render using data available (normal path)
|
|
189
132
|
|
|
190
133
|
|
|
191
|
-
return /*#__PURE__*/_react.default.createElement(
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
}), /*#__PURE__*/_react.default.createElement(_blocks.FooterBlock, {
|
|
203
|
-
actions: footerActions,
|
|
204
|
-
size: _constants.SmartLinkSize.Large,
|
|
205
|
-
overrideCss: _styled.footerBlockCss
|
|
206
|
-
}));
|
|
134
|
+
return /*#__PURE__*/_react.default.createElement(_resolved.default, {
|
|
135
|
+
id: id,
|
|
136
|
+
url: url,
|
|
137
|
+
extensionKey: extensionKey,
|
|
138
|
+
analytics: analytics,
|
|
139
|
+
cardActions: cardActions,
|
|
140
|
+
cardState: cardState,
|
|
141
|
+
flexibleCardProps: flexibleCardProps,
|
|
142
|
+
onActionClick: onActionClick,
|
|
143
|
+
titleBlockProps: titleBlockProps
|
|
144
|
+
});
|
|
207
145
|
};
|
|
208
146
|
|
|
209
147
|
var _default = HoverCardContent;
|
|
@@ -0,0 +1,134 @@
|
|
|
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.toFooterActions = exports.default = void 0;
|
|
11
|
+
|
|
12
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
13
|
+
|
|
14
|
+
var _linkProvider = require("@atlaskit/link-provider");
|
|
15
|
+
|
|
16
|
+
var _extractors = require("@atlaskit/linking-common/extractors");
|
|
17
|
+
|
|
18
|
+
var _constants = require("../../../../../constants");
|
|
19
|
+
|
|
20
|
+
var _blocks = require("../../../../FlexibleCard/components/blocks");
|
|
21
|
+
|
|
22
|
+
var _styled = require("./styled");
|
|
23
|
+
|
|
24
|
+
var _FlexibleCard = _interopRequireDefault(require("../../../../FlexibleCard"));
|
|
25
|
+
|
|
26
|
+
var _actions = require("../../../../../state/actions");
|
|
27
|
+
|
|
28
|
+
var _utils = require("../../../utils");
|
|
29
|
+
|
|
30
|
+
var _SnippetOrPreview = _interopRequireDefault(require("../../SnippetOrPreview"));
|
|
31
|
+
|
|
32
|
+
var _extractMetadata = require("../../../../../extractors/hover/extractMetadata");
|
|
33
|
+
|
|
34
|
+
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); }
|
|
35
|
+
|
|
36
|
+
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; }
|
|
37
|
+
|
|
38
|
+
var toFooterActions = function toFooterActions(cardActions, onActionClick) {
|
|
39
|
+
return cardActions.map(function (action) {
|
|
40
|
+
return {
|
|
41
|
+
content: action.text,
|
|
42
|
+
name: _constants.ActionName.CustomAction,
|
|
43
|
+
onClick: function onClick() {
|
|
44
|
+
if (onActionClick) {
|
|
45
|
+
onActionClick(action.id);
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
return action.invoke();
|
|
49
|
+
},
|
|
50
|
+
testId: action.id
|
|
51
|
+
};
|
|
52
|
+
});
|
|
53
|
+
};
|
|
54
|
+
|
|
55
|
+
exports.toFooterActions = toFooterActions;
|
|
56
|
+
|
|
57
|
+
var HoverCardResolvedView = function HoverCardResolvedView(_ref) {
|
|
58
|
+
var _cardState$details;
|
|
59
|
+
|
|
60
|
+
var flexibleCardProps = _ref.flexibleCardProps,
|
|
61
|
+
titleBlockProps = _ref.titleBlockProps,
|
|
62
|
+
analytics = _ref.analytics,
|
|
63
|
+
_ref$id = _ref.id,
|
|
64
|
+
id = _ref$id === void 0 ? '' : _ref$id,
|
|
65
|
+
url = _ref.url,
|
|
66
|
+
cardState = _ref.cardState,
|
|
67
|
+
_ref$cardActions = _ref.cardActions,
|
|
68
|
+
cardActions = _ref$cardActions === void 0 ? [] : _ref$cardActions,
|
|
69
|
+
onActionClick = _ref.onActionClick,
|
|
70
|
+
extensionKey = _ref.extensionKey;
|
|
71
|
+
var showActionableElement = (0, _linkProvider.useFeatureFlag)('enableActionableElement');
|
|
72
|
+
var actions = (0, _actions.useSmartCardActions)(id, url, analytics);
|
|
73
|
+
(0, _react.useEffect)(function () {
|
|
74
|
+
actions.loadMetadata();
|
|
75
|
+
}, [actions]);
|
|
76
|
+
(0, _react.useEffect)(function () {
|
|
77
|
+
// Since this hover view is only rendered on resolved status,
|
|
78
|
+
// there is no need to check for statuses.
|
|
79
|
+
analytics.ui.renderSuccessEvent({
|
|
80
|
+
display: _utils.SMART_CARD_ANALYTICS_DISPLAY,
|
|
81
|
+
status: cardState.status
|
|
82
|
+
});
|
|
83
|
+
}, [analytics.ui, cardState.status]);
|
|
84
|
+
var footerActions = (0, _react.useMemo)(function () {
|
|
85
|
+
return toFooterActions(cardActions, onActionClick);
|
|
86
|
+
}, [cardActions, onActionClick]);
|
|
87
|
+
var data = (_cardState$details = cardState.details) === null || _cardState$details === void 0 ? void 0 : _cardState$details.data;
|
|
88
|
+
|
|
89
|
+
var _useMemo = (0, _react.useMemo)(function () {
|
|
90
|
+
var types = data ? (0, _extractors.extractType)(data) : undefined; //TODO: EDM-3224 deleted simulated and use real JsonLd
|
|
91
|
+
|
|
92
|
+
var metadata = (0, _extractMetadata.extractMetadata)((0, _utils.getSimulatedMetadata)(extensionKey, types));
|
|
93
|
+
var primary = showActionableElement ? (0, _utils.toActionableMetadata)(onActionClick, extensionKey, types, cardActions, metadata.primary) : metadata.primary;
|
|
94
|
+
return {
|
|
95
|
+
primary: primary,
|
|
96
|
+
secondary: metadata.secondary,
|
|
97
|
+
subtitle: metadata.subtitle
|
|
98
|
+
};
|
|
99
|
+
}, [cardActions, data, extensionKey, onActionClick, showActionableElement]),
|
|
100
|
+
primary = _useMemo.primary,
|
|
101
|
+
secondary = _useMemo.secondary;
|
|
102
|
+
|
|
103
|
+
var snippetHeight = _react.default.useRef(0);
|
|
104
|
+
|
|
105
|
+
var snippetBlockRef = (0, _react.useRef)(null);
|
|
106
|
+
var onSnippetRender = (0, _react.useCallback)(function () {
|
|
107
|
+
var _snippetBlockRef$curr, _snippetBlockRef$curr2;
|
|
108
|
+
|
|
109
|
+
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;
|
|
110
|
+
}, []);
|
|
111
|
+
var body = (0, _SnippetOrPreview.default)({
|
|
112
|
+
data: data,
|
|
113
|
+
snippetHeight: snippetHeight.current
|
|
114
|
+
});
|
|
115
|
+
return /*#__PURE__*/_react.default.createElement(_FlexibleCard.default, flexibleCardProps, /*#__PURE__*/_react.default.createElement(_blocks.TitleBlock, titleBlockProps), /*#__PURE__*/_react.default.createElement(_blocks.MetadataBlock, {
|
|
116
|
+
primary: primary,
|
|
117
|
+
secondary: secondary,
|
|
118
|
+
size: _constants.SmartLinkSize.Large,
|
|
119
|
+
overrideCss: _styled.metadataBlockCss,
|
|
120
|
+
maxLines: 1
|
|
121
|
+
}), body, /*#__PURE__*/_react.default.createElement(_blocks.SnippetBlock, {
|
|
122
|
+
testId: 'hidden-snippet',
|
|
123
|
+
onRender: onSnippetRender,
|
|
124
|
+
blockRef: snippetBlockRef,
|
|
125
|
+
overrideCss: _styled.hiddenSnippetStyles
|
|
126
|
+
}), /*#__PURE__*/_react.default.createElement(_blocks.FooterBlock, {
|
|
127
|
+
actions: footerActions,
|
|
128
|
+
size: _constants.SmartLinkSize.Large,
|
|
129
|
+
overrideCss: _styled.footerBlockCss
|
|
130
|
+
}));
|
|
131
|
+
};
|
|
132
|
+
|
|
133
|
+
var _default = HoverCardResolvedView;
|
|
134
|
+
exports.default = _default;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.metadataBlockCss = exports.hiddenSnippetStyles = exports.footerBlockCss = void 0;
|
|
9
|
+
|
|
10
|
+
var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
|
|
11
|
+
|
|
12
|
+
var _react = require("@emotion/react");
|
|
13
|
+
|
|
14
|
+
var _styled = require("../../../styled");
|
|
15
|
+
|
|
16
|
+
var _templateObject, _templateObject2, _templateObject3;
|
|
17
|
+
|
|
18
|
+
var elementGap = '0.5rem';
|
|
19
|
+
var metadataBlockCss = (0, _react.css)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n gap: 0px;\n\n /* primary element group */\n [data-smart-element-group]:nth-of-type(1) {\n flex-grow: 7;\n\n // a separator between text-based element\n ", "\n\n /* horizontal spacing between elements in group */\n > span {\n margin-right: ", ";\n }\n }\n /* secondary element group */\n [data-smart-element-group]:nth-of-type(2) {\n flex-grow: 3;\n /* horizontal spacing between elements in group */\n > span {\n margin-left: ", ";\n }\n }\n"])), _styled.separatorCss, elementGap, elementGap);
|
|
20
|
+
exports.metadataBlockCss = metadataBlockCss;
|
|
21
|
+
var footerBlockCss = (0, _react.css)(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2.default)(["\n padding-top: 0.25rem;\n"])));
|
|
22
|
+
exports.footerBlockCss = footerBlockCss;
|
|
23
|
+
var hiddenSnippetStyles = (0, _react.css)(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2.default)(["\n visibility: hidden;\n position: absolute;\n"])));
|
|
24
|
+
exports.hiddenSnippetStyles = hiddenSnippetStyles;
|
package/dist/cjs/view/HoverCard/components/{HoverCardLoadingView.js → views/resolving/index.js}
RENAMED
|
@@ -11,13 +11,15 @@ var _react = require("@emotion/react");
|
|
|
11
11
|
|
|
12
12
|
var _react2 = _interopRequireDefault(require("react"));
|
|
13
13
|
|
|
14
|
-
var _loadingSkeleton = _interopRequireDefault(require("
|
|
14
|
+
var _loadingSkeleton = _interopRequireDefault(require("../../../../FlexibleCard/components/common/loading-skeleton"));
|
|
15
15
|
|
|
16
|
-
var _FlexibleCard = _interopRequireDefault(require("
|
|
16
|
+
var _FlexibleCard = _interopRequireDefault(require("../../../../FlexibleCard"));
|
|
17
17
|
|
|
18
|
-
var _blocks = require("
|
|
18
|
+
var _blocks = require("../../../../FlexibleCard/components/blocks");
|
|
19
19
|
|
|
20
|
-
var _styled = require("
|
|
20
|
+
var _styled = require("../../../styled");
|
|
21
|
+
|
|
22
|
+
var _styled2 = require("./styled");
|
|
21
23
|
|
|
22
24
|
/** @jsx jsx */
|
|
23
25
|
var HoverCardLoadingView = function HoverCardLoadingView(_ref) {
|
|
@@ -26,10 +28,10 @@ var HoverCardLoadingView = function HoverCardLoadingView(_ref) {
|
|
|
26
28
|
var lineHeightRem = 1.25;
|
|
27
29
|
var skeletonWidth = _styled.CARD_WIDTH_REM - 2;
|
|
28
30
|
return (0, _react.jsx)("div", {
|
|
29
|
-
css:
|
|
31
|
+
css: _styled2.loadingViewContainer,
|
|
30
32
|
"data-testid": "hover-card-loading-view"
|
|
31
33
|
}, (0, _react.jsx)(_FlexibleCard.default, flexibleCardProps, (0, _react.jsx)(_blocks.TitleBlock, titleBlockProps)), (0, _react.jsx)("div", {
|
|
32
|
-
css:
|
|
34
|
+
css: _styled2.skeletonContainer
|
|
33
35
|
}, (0, _react.jsx)("span", null), (0, _react.jsx)(_loadingSkeleton.default, {
|
|
34
36
|
width: skeletonWidth,
|
|
35
37
|
height: lineHeightRem
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.skeletonContainer = exports.loadingViewContainer = void 0;
|
|
9
|
+
|
|
10
|
+
var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
|
|
11
|
+
|
|
12
|
+
var _react = require("@emotion/react");
|
|
13
|
+
|
|
14
|
+
var _templateObject, _templateObject2;
|
|
15
|
+
|
|
16
|
+
var loadingViewContainer = (0, _react.css)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n display: flex;\n flex-direction: column;\n"])));
|
|
17
|
+
exports.loadingViewContainer = loadingViewContainer;
|
|
18
|
+
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"])));
|
|
19
|
+
exports.skeletonContainer = skeletonContainer;
|
|
@@ -0,0 +1,85 @@
|
|
|
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 _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
13
|
+
|
|
14
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
15
|
+
|
|
16
|
+
var _reactIntlNext = require("react-intl-next");
|
|
17
|
+
|
|
18
|
+
var _FlexibleCard = _interopRequireDefault(require("../../../../FlexibleCard"));
|
|
19
|
+
|
|
20
|
+
var _messages = require("../../../../../messages");
|
|
21
|
+
|
|
22
|
+
var _blocks = require("../../../../FlexibleCard/components/blocks");
|
|
23
|
+
|
|
24
|
+
var _extractors = require("@atlaskit/linking-common/extractors");
|
|
25
|
+
|
|
26
|
+
var _styled = require("./styled");
|
|
27
|
+
|
|
28
|
+
var _UnauthorisedViewContent = _interopRequireDefault(require("../../../../common/UnauthorisedViewContent"));
|
|
29
|
+
|
|
30
|
+
var _actionGroup = _interopRequireDefault(require("../../../../FlexibleCard/components/blocks/action-group"));
|
|
31
|
+
|
|
32
|
+
var _elements = require("../../../../FlexibleCard/components/elements");
|
|
33
|
+
|
|
34
|
+
var _constants = require("../../../../../constants");
|
|
35
|
+
|
|
36
|
+
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); }
|
|
37
|
+
|
|
38
|
+
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
|
+
|
|
40
|
+
var HoverCardUnauthorisedView = function HoverCardUnauthorisedView(_ref) {
|
|
41
|
+
var _cardState$details, _extractProvider;
|
|
42
|
+
|
|
43
|
+
var flexibleCardProps = _ref.flexibleCardProps,
|
|
44
|
+
_ref$testId = _ref.testId,
|
|
45
|
+
testId = _ref$testId === void 0 ? 'hover-card-unauthorised-view' : _ref$testId,
|
|
46
|
+
onAuthorize = _ref.onAuthorize;
|
|
47
|
+
var cardState = flexibleCardProps.cardState;
|
|
48
|
+
var data = (_cardState$details = cardState.details) === null || _cardState$details === void 0 ? void 0 : _cardState$details.data;
|
|
49
|
+
var providerName = (_extractProvider = (0, _extractors.extractProvider)(data)) === null || _extractProvider === void 0 ? void 0 : _extractProvider.text;
|
|
50
|
+
var actions = (0, _react.useMemo)(function () {
|
|
51
|
+
return onAuthorize ? [{
|
|
52
|
+
name: _constants.ActionName.CustomAction,
|
|
53
|
+
content: /*#__PURE__*/_react.default.createElement(_reactIntlNext.FormattedMessage, (0, _extends2.default)({}, _messages.messages.connect_unauthorised_account_action, {
|
|
54
|
+
values: {
|
|
55
|
+
context: providerName
|
|
56
|
+
}
|
|
57
|
+
})),
|
|
58
|
+
onClick: onAuthorize
|
|
59
|
+
}] : [];
|
|
60
|
+
}, [onAuthorize, providerName]);
|
|
61
|
+
return /*#__PURE__*/_react.default.createElement(_FlexibleCard.default, (0, _extends2.default)({}, flexibleCardProps, {
|
|
62
|
+
testId: testId
|
|
63
|
+
}), /*#__PURE__*/_react.default.createElement(_blocks.CustomBlock, {
|
|
64
|
+
overrideCss: _styled.titleBlockStyles,
|
|
65
|
+
testId: "".concat(testId, "-title")
|
|
66
|
+
}, /*#__PURE__*/_react.default.createElement(_elements.LinkIcon, null), /*#__PURE__*/_react.default.createElement(_reactIntlNext.FormattedMessage, (0, _extends2.default)({}, _messages.messages.connect_link_account_card_name, {
|
|
67
|
+
values: {
|
|
68
|
+
context: providerName
|
|
69
|
+
}
|
|
70
|
+
}))), /*#__PURE__*/_react.default.createElement(_blocks.CustomBlock, {
|
|
71
|
+
overrideCss: _styled.mainTextStyles,
|
|
72
|
+
testId: "".concat(testId, "-content")
|
|
73
|
+
}, /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement(_UnauthorisedViewContent.default, {
|
|
74
|
+
providerName: providerName
|
|
75
|
+
}))), /*#__PURE__*/_react.default.createElement(_blocks.CustomBlock, {
|
|
76
|
+
overrideCss: _styled.connectButtonStyles,
|
|
77
|
+
testId: "".concat(testId, "-button")
|
|
78
|
+
}, /*#__PURE__*/_react.default.createElement(_actionGroup.default, {
|
|
79
|
+
items: actions,
|
|
80
|
+
appearance: "primary"
|
|
81
|
+
})));
|
|
82
|
+
};
|
|
83
|
+
|
|
84
|
+
var _default = HoverCardUnauthorisedView;
|
|
85
|
+
exports.default = _default;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.titleBlockStyles = exports.mainTextStyles = exports.connectButtonStyles = void 0;
|
|
9
|
+
|
|
10
|
+
var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
|
|
11
|
+
|
|
12
|
+
var _react = require("@emotion/react");
|
|
13
|
+
|
|
14
|
+
var _templateObject, _templateObject2, _templateObject3;
|
|
15
|
+
|
|
16
|
+
var blockGap = '0.5rem';
|
|
17
|
+
var iconGap = '0.5rem';
|
|
18
|
+
var titleFontWeight = '500';
|
|
19
|
+
var connectButtonStyles = (0, _react.css)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n justify-content: flex-end;\n margin-top: ", ";\n"])), blockGap);
|
|
20
|
+
exports.connectButtonStyles = connectButtonStyles;
|
|
21
|
+
var titleBlockStyles = (0, _react.css)(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2.default)(["\n gap: ", " ", ";\n a {\n font-weight: ", ";\n }\n"])), blockGap, iconGap, titleFontWeight);
|
|
22
|
+
exports.titleBlockStyles = titleBlockStyles;
|
|
23
|
+
var mainTextStyles = (0, _react.css)(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2.default)(["\n margin-top: ", ";\n font-size: 0.75rem;\n"])), blockGap);
|
|
24
|
+
exports.mainTextStyles = mainTextStyles;
|