@atlaskit/smart-card 40.11.0 → 40.12.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 +7 -0
- package/dist/cjs/extractors/action/extract-invoke-preview-action.js +68 -41
- package/dist/cjs/extractors/flexible/actions/extract-preview-action.js +2 -4
- package/dist/cjs/extractors/flexible/actions/index.js +6 -2
- package/dist/cjs/extractors/flexible/extract-state.js +9 -7
- package/dist/cjs/extractors/flexible/index.js +8 -3
- package/dist/cjs/messages.js +10 -0
- package/dist/cjs/state/hooks-external/useSmartLinkActions.js +8 -2
- package/dist/cjs/utils/analytics/analytics.js +1 -1
- package/dist/cjs/view/CardWithUrl/component.js +1 -0
- package/dist/cjs/view/FlexibleCard/components/actions/preview-action/index.js +29 -4
- package/dist/cjs/view/FlexibleCard/index.js +8 -2
- package/dist/cjs/view/LinkUrl/index.js +1 -1
- package/dist/es2019/extractors/action/extract-invoke-preview-action.js +49 -27
- package/dist/es2019/extractors/flexible/actions/extract-preview-action.js +2 -4
- package/dist/es2019/extractors/flexible/actions/index.js +6 -2
- package/dist/es2019/extractors/flexible/extract-state.js +9 -7
- package/dist/es2019/extractors/flexible/index.js +7 -2
- package/dist/es2019/messages.js +10 -0
- package/dist/es2019/state/hooks-external/useSmartLinkActions.js +9 -2
- package/dist/es2019/utils/analytics/analytics.js +1 -1
- package/dist/es2019/view/CardWithUrl/component.js +1 -0
- package/dist/es2019/view/FlexibleCard/components/actions/preview-action/index.js +29 -4
- package/dist/es2019/view/FlexibleCard/index.js +9 -2
- package/dist/es2019/view/LinkUrl/index.js +1 -1
- package/dist/esm/extractors/action/extract-invoke-preview-action.js +69 -42
- package/dist/esm/extractors/flexible/actions/extract-preview-action.js +2 -4
- package/dist/esm/extractors/flexible/actions/index.js +6 -2
- package/dist/esm/extractors/flexible/extract-state.js +9 -7
- package/dist/esm/extractors/flexible/index.js +8 -3
- package/dist/esm/messages.js +10 -0
- package/dist/esm/state/hooks-external/useSmartLinkActions.js +8 -2
- package/dist/esm/utils/analytics/analytics.js +1 -1
- package/dist/esm/view/CardWithUrl/component.js +1 -0
- package/dist/esm/view/FlexibleCard/components/actions/preview-action/index.js +29 -4
- package/dist/esm/view/FlexibleCard/index.js +8 -2
- package/dist/esm/view/LinkUrl/index.js +1 -1
- package/dist/types/extractors/action/extract-invoke-preview-action.d.ts +15 -1
- package/dist/types/extractors/flexible/actions/index.d.ts +10 -1
- package/dist/types/extractors/flexible/extract-state.d.ts +8 -1
- package/dist/types/extractors/flexible/index.d.ts +1 -1
- package/dist/types/messages.d.ts +1 -1
- package/dist/types/state/flexible-ui-context/types.d.ts +1 -0
- package/dist/types/view/FlexibleCard/types.d.ts +9 -0
- package/dist/types-ts4.5/extractors/action/extract-invoke-preview-action.d.ts +15 -1
- package/dist/types-ts4.5/extractors/flexible/actions/index.d.ts +10 -1
- package/dist/types-ts4.5/extractors/flexible/extract-state.d.ts +8 -1
- package/dist/types-ts4.5/extractors/flexible/index.d.ts +1 -1
- package/dist/types-ts4.5/messages.d.ts +1 -1
- package/dist/types-ts4.5/state/flexible-ui-context/types.d.ts +1 -0
- package/dist/types-ts4.5/view/FlexibleCard/types.d.ts +9 -0
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
# @atlaskit/smart-card
|
|
2
2
|
|
|
3
|
+
## 40.12.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- [`4b9dfa0c0bf0d`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/4b9dfa0c0bf0d) -
|
|
8
|
+
[ux] Adds support for preview panel triggers to the hover card
|
|
9
|
+
|
|
3
10
|
## 40.11.0
|
|
4
11
|
|
|
5
12
|
### Minor Changes
|
|
@@ -8,6 +8,7 @@ exports.extractInvokePreviewAction = void 0;
|
|
|
8
8
|
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
9
9
|
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
10
10
|
var _linkExtractors = require("@atlaskit/link-extractors");
|
|
11
|
+
var _expValEquals = require("@atlaskit/tmp-editor-statsig/exp-val-equals");
|
|
11
12
|
var _index = require("../../index");
|
|
12
13
|
var _helpers = require("../../state/helpers");
|
|
13
14
|
var _canShowAction = require("../../utils/actions/can-show-action");
|
|
@@ -25,54 +26,80 @@ var extractInvokePreviewAction = exports.extractInvokePreviewAction = function e
|
|
|
25
26
|
onClose = param.onClose,
|
|
26
27
|
id = param.id,
|
|
27
28
|
origin = param.origin,
|
|
28
|
-
response = param.response
|
|
29
|
+
response = param.response,
|
|
30
|
+
isPreviewPanelAvailable = param.isPreviewPanelAvailable,
|
|
31
|
+
openPreviewPanel = param.openPreviewPanel;
|
|
32
|
+
var ari = (0, _linkExtractors.extractSmartLinkAri)(response);
|
|
33
|
+
var url = (0, _linkExtractors.extractSmartLinkUrl)(response);
|
|
34
|
+
var name = (0, _linkExtractors.extractSmartLinkTitle)(response);
|
|
35
|
+
var hasPreviewPanelParams = Boolean((0, _expValEquals.expValEquals)('platform_hover_card_preview_panel', 'cohort', 'test') && isPreviewPanelAvailable && openPreviewPanel && ari && url && name);
|
|
36
|
+
var hasPreviewPanel = hasPreviewPanelParams && isPreviewPanelAvailable({
|
|
37
|
+
ari: ari
|
|
38
|
+
});
|
|
39
|
+
var data = response.data;
|
|
40
|
+
var meta = response.meta;
|
|
29
41
|
if (!(0, _canShowAction.canShowAction)(_index.CardAction.PreviewAction, actionOptions)) {
|
|
30
42
|
return;
|
|
31
43
|
}
|
|
32
|
-
var data = response.data;
|
|
33
|
-
var meta = response.meta;
|
|
34
44
|
var src = (_extractPreviewData = (0, _linkExtractors.extractPreview)(data, 'web')) === null || _extractPreviewData === void 0 ? void 0 : _extractPreviewData.src;
|
|
35
45
|
if (src) {
|
|
36
46
|
var extensionKey = (0, _helpers.getExtensionKey)(response);
|
|
37
47
|
return {
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
var
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
48
|
+
invokeAction: {
|
|
49
|
+
actionFn: function () {
|
|
50
|
+
var _actionFn = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
|
|
51
|
+
var _extractSmartLinkProv, _extractSmartLinkEmbe;
|
|
52
|
+
return _regenerator.default.wrap(function _callee$(_context) {
|
|
53
|
+
while (1) switch (_context.prev = _context.next) {
|
|
54
|
+
case 0:
|
|
55
|
+
if (!hasPreviewPanel) {
|
|
56
|
+
_context.next = 4;
|
|
57
|
+
break;
|
|
58
|
+
}
|
|
59
|
+
openPreviewPanel({
|
|
60
|
+
ari: ari,
|
|
61
|
+
url: url,
|
|
62
|
+
name: name,
|
|
63
|
+
iconUrl: undefined
|
|
64
|
+
});
|
|
65
|
+
_context.next = 6;
|
|
66
|
+
break;
|
|
67
|
+
case 4:
|
|
68
|
+
_context.next = 6;
|
|
69
|
+
return (0, _utils.openEmbedModal)({
|
|
70
|
+
fireEvent: fireEvent,
|
|
71
|
+
extensionKey: extensionKey,
|
|
72
|
+
id: id,
|
|
73
|
+
invokeDownloadAction: (0, _extractInvokeDownloadAction.extractInvokeDownloadAction)(param),
|
|
74
|
+
invokeViewAction: (0, _extractInvokeViewAction.extractInvokeViewAction)(param, true),
|
|
75
|
+
isSupportTheming: (0, _extractIsSupportTheming.extractIsSupportTheming)(meta),
|
|
76
|
+
isTrusted: (0, _extractIsTrusted.extractIsTrusted)(meta),
|
|
77
|
+
linkIcon: (0, _icon.extractLinkIcon)(response),
|
|
78
|
+
providerName: (_extractSmartLinkProv = (0, _linkExtractors.extractSmartLinkProvider)(response)) === null || _extractSmartLinkProv === void 0 ? void 0 : _extractSmartLinkProv.text,
|
|
79
|
+
onClose: onClose,
|
|
80
|
+
origin: origin,
|
|
81
|
+
src: (_extractSmartLinkEmbe = (0, _linkExtractors.extractSmartLinkEmbed)(response)) === null || _extractSmartLinkEmbe === void 0 ? void 0 : _extractSmartLinkEmbe.src,
|
|
82
|
+
title: (0, _linkExtractors.extractSmartLinkTitle)(response),
|
|
83
|
+
url: url
|
|
84
|
+
});
|
|
85
|
+
case 6:
|
|
86
|
+
case "end":
|
|
87
|
+
return _context.stop();
|
|
88
|
+
}
|
|
89
|
+
}, _callee);
|
|
90
|
+
}));
|
|
91
|
+
function actionFn() {
|
|
92
|
+
return _actionFn.apply(this, arguments);
|
|
93
|
+
}
|
|
94
|
+
return actionFn;
|
|
95
|
+
}(),
|
|
96
|
+
actionSubjectId: 'invokePreviewScreen',
|
|
97
|
+
actionType: _index.ActionName.PreviewAction,
|
|
98
|
+
display: display,
|
|
99
|
+
extensionKey: extensionKey,
|
|
100
|
+
id: id
|
|
101
|
+
},
|
|
102
|
+
hasPreviewPanel: hasPreviewPanel
|
|
76
103
|
};
|
|
77
104
|
}
|
|
78
105
|
};
|
|
@@ -6,8 +6,6 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.extractPreviewClientAction = void 0;
|
|
7
7
|
var _extractInvokePreviewAction = require("../../action/extract-invoke-preview-action");
|
|
8
8
|
var extractPreviewClientAction = exports.extractPreviewClientAction = function extractPreviewClientAction(param) {
|
|
9
|
-
var
|
|
10
|
-
return
|
|
11
|
-
invokeAction: invokeAction
|
|
12
|
-
} : undefined;
|
|
9
|
+
var result = (0, _extractInvokePreviewAction.extractInvokePreviewAction)(param);
|
|
10
|
+
return result ? result : undefined;
|
|
13
11
|
};
|
|
@@ -22,7 +22,9 @@ var extractFlexibleCardActions = exports.extractFlexibleCardActions = function e
|
|
|
22
22
|
id = _ref.id,
|
|
23
23
|
origin = _ref.origin,
|
|
24
24
|
response = _ref.response,
|
|
25
|
-
url = _ref.url
|
|
25
|
+
url = _ref.url,
|
|
26
|
+
isPreviewPanelAvailable = _ref.isPreviewPanelAvailable,
|
|
27
|
+
openPreviewPanel = _ref.openPreviewPanel;
|
|
26
28
|
var action = (0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)({}, _constants.ActionName.CopyLinkAction, (0, _extractCopyLinkAction.extractCopyLinkClientAction)({
|
|
27
29
|
actionOptions: actionOptions,
|
|
28
30
|
appearance: appearance,
|
|
@@ -39,7 +41,9 @@ var extractFlexibleCardActions = exports.extractFlexibleCardActions = function e
|
|
|
39
41
|
fireEvent: fireEvent,
|
|
40
42
|
id: id,
|
|
41
43
|
origin: origin,
|
|
42
|
-
response: response
|
|
44
|
+
response: response,
|
|
45
|
+
isPreviewPanelAvailable: isPreviewPanelAvailable,
|
|
46
|
+
openPreviewPanel: openPreviewPanel
|
|
43
47
|
})), _constants.ActionName.AutomationAction, (0, _extractAutomationAction.extractAutomationAction)(response)), _constants.InternalActionName.AISummaryAction, (0, _extractAiSummaryAction.extractAISummaryAction)(response, url, actionOptions, aiSummaryConfig)), _constants.InternalActionName.ViewRelatedLinksAction, (0, _extractViewRelatedLinksAction.extractViewRelatedLinksAction)(response));
|
|
44
48
|
return Object.values(action).some(function (value) {
|
|
45
49
|
return Boolean(value);
|
|
@@ -28,8 +28,8 @@ var toInvokeRequest = function toInvokeRequest(extensionKey, resourceIdentifiers
|
|
|
28
28
|
details: details
|
|
29
29
|
};
|
|
30
30
|
};
|
|
31
|
-
var extractAction = function extractAction(response, id, actionOptions, appearance, origin, fireEvent, resolve) {
|
|
32
|
-
var _action$dataRetrieval, _action$dataUpdateAct;
|
|
31
|
+
var extractAction = function extractAction(response, id, actionOptions, appearance, origin, fireEvent, resolve, isPreviewPanelAvailable, openPreviewPanel) {
|
|
32
|
+
var _action$dataRetrieval, _extractInvokePreview, _action$dataUpdateAct;
|
|
33
33
|
var extensionKey = (0, _helpers.getExtensionKey)(response);
|
|
34
34
|
var data = response === null || response === void 0 ? void 0 : response.data;
|
|
35
35
|
var actions = (0, _extractServerAction.default)(data);
|
|
@@ -44,7 +44,7 @@ var extractAction = function extractAction(response, id, actionOptions, appearan
|
|
|
44
44
|
}
|
|
45
45
|
var read = toInvokeRequest(extensionKey, action.resourceIdentifiers, (_action$dataRetrieval = action.dataRetrievalAction) === null || _action$dataRetrieval === void 0 ? void 0 : _action$dataRetrieval.name);
|
|
46
46
|
var url = (0, _linkExtractors.extractLink)(data);
|
|
47
|
-
var invokePreviewAction = response ? (0, _extractInvokePreviewAction.extractInvokePreviewAction)({
|
|
47
|
+
var invokePreviewAction = response ? (_extractInvokePreview = (0, _extractInvokePreviewAction.extractInvokePreviewAction)({
|
|
48
48
|
actionOptions: actionOptions,
|
|
49
49
|
appearance: appearance,
|
|
50
50
|
fireEvent: fireEvent,
|
|
@@ -53,8 +53,10 @@ var extractAction = function extractAction(response, id, actionOptions, appearan
|
|
|
53
53
|
return url && resolve(url, true);
|
|
54
54
|
} : undefined,
|
|
55
55
|
origin: origin,
|
|
56
|
-
response: response
|
|
57
|
-
|
|
56
|
+
response: response,
|
|
57
|
+
isPreviewPanelAvailable: isPreviewPanelAvailable,
|
|
58
|
+
openPreviewPanel: openPreviewPanel
|
|
59
|
+
})) === null || _extractInvokePreview === void 0 ? void 0 : _extractInvokePreview.invokeAction : undefined;
|
|
58
60
|
var details = {
|
|
59
61
|
id: id,
|
|
60
62
|
url: url,
|
|
@@ -66,7 +68,7 @@ var extractAction = function extractAction(response, id, actionOptions, appearan
|
|
|
66
68
|
update: update
|
|
67
69
|
} : undefined;
|
|
68
70
|
};
|
|
69
|
-
var extractState = function extractState(response, actionOptions, id, appearance, origin, fireEvent, resolve) {
|
|
71
|
+
var extractState = function extractState(response, actionOptions, id, appearance, origin, fireEvent, resolve, isPreviewPanelAvailable, openPreviewPanel) {
|
|
70
72
|
if (!response || !response.data) {
|
|
71
73
|
return;
|
|
72
74
|
}
|
|
@@ -77,7 +79,7 @@ var extractState = function extractState(response, actionOptions, id, appearance
|
|
|
77
79
|
if (!(0, _canShowAction.canShowAction)(_types.CardAction.ChangeStatusAction, actionOptions)) {
|
|
78
80
|
return lozenge;
|
|
79
81
|
}
|
|
80
|
-
var action = extractAction(response, id, actionOptions, appearance, origin, fireEvent, resolve);
|
|
82
|
+
var action = extractAction(response, id, actionOptions, appearance, origin, fireEvent, resolve, isPreviewPanelAvailable, openPreviewPanel);
|
|
81
83
|
return _objectSpread(_objectSpread({}, lozenge), {}, {
|
|
82
84
|
action: action
|
|
83
85
|
});
|
|
@@ -20,7 +20,7 @@ var _icon = require("./icon");
|
|
|
20
20
|
var _extractProviderIcon = require("./icon/extract-provider-icon");
|
|
21
21
|
var _latestCommit = require("./latest-commit");
|
|
22
22
|
var _utils = require("./utils");
|
|
23
|
-
var _excluded = ["appearance", "fireEvent", "id", "onClick", "origin", "renderers", "resolve", "actionOptions", "response", "status", "aiSummaryConfig"];
|
|
23
|
+
var _excluded = ["appearance", "fireEvent", "id", "onClick", "origin", "renderers", "resolve", "actionOptions", "response", "status", "aiSummaryConfig", "isPreviewPanelAvailable", "openPreviewPanel"];
|
|
24
24
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
25
25
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
26
26
|
var extractFlexibleUiContext = function extractFlexibleUiContext() {
|
|
@@ -36,6 +36,8 @@ var extractFlexibleUiContext = function extractFlexibleUiContext() {
|
|
|
36
36
|
response = _ref.response,
|
|
37
37
|
status = _ref.status,
|
|
38
38
|
aiSummaryConfig = _ref.aiSummaryConfig,
|
|
39
|
+
isPreviewPanelAvailable = _ref.isPreviewPanelAvailable,
|
|
40
|
+
openPreviewPanel = _ref.openPreviewPanel,
|
|
39
41
|
props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
|
|
40
42
|
if (!response) {
|
|
41
43
|
return undefined;
|
|
@@ -52,7 +54,10 @@ var extractFlexibleUiContext = function extractFlexibleUiContext() {
|
|
|
52
54
|
id: id,
|
|
53
55
|
origin: origin,
|
|
54
56
|
response: response,
|
|
55
|
-
url: props.url
|
|
57
|
+
url: props.url,
|
|
58
|
+
// Use the original URL in edge cases, such as short links for AI summary and copy link actions.
|
|
59
|
+
isPreviewPanelAvailable: isPreviewPanelAvailable,
|
|
60
|
+
openPreviewPanel: openPreviewPanel
|
|
56
61
|
}),
|
|
57
62
|
appliedToComponentsCount: (0, _utils.extractAppliedToComponentsCount)(data),
|
|
58
63
|
assignedToGroup: (0, _utils.extractPersonAssignedToAsArray)(data),
|
|
@@ -85,7 +90,7 @@ var extractFlexibleUiContext = function extractFlexibleUiContext() {
|
|
|
85
90
|
snippet: (0, _extractSummary.extractSmartLinkSummary)(response) || undefined,
|
|
86
91
|
// Explicitly set here to remove an empty string
|
|
87
92
|
sourceBranch: (0, _utils.extractSourceBranch)(data),
|
|
88
|
-
state: (0, _extractState.default)(response, actionOptions, id, appearance, origin, fireEvent, resolve),
|
|
93
|
+
state: (0, _extractState.default)(response, actionOptions, id, appearance, origin, fireEvent, resolve, isPreviewPanelAvailable, openPreviewPanel),
|
|
89
94
|
subscriberCount: (0, _utils.extractSubscriberCount)(data),
|
|
90
95
|
subTasksProgress: (0, _utils.extractSubTasksProgress)(data),
|
|
91
96
|
storyPoints: (0, _utils.extractStoryPoints)(data),
|
package/dist/cjs/messages.js
CHANGED
|
@@ -390,6 +390,16 @@ var messages = exports.messages = (0, _reactIntlNext.defineMessages)({
|
|
|
390
390
|
defaultMessage: 'Open preview',
|
|
391
391
|
description: 'Click to view a richer view of your content, without needing to navigate to it.'
|
|
392
392
|
},
|
|
393
|
+
preview_modal: {
|
|
394
|
+
id: 'fabric.linking.preview_modal',
|
|
395
|
+
defaultMessage: 'Open preview modal',
|
|
396
|
+
description: 'Button used to view a modal view of your content without needing to navigate to it.'
|
|
397
|
+
},
|
|
398
|
+
preview_panel: {
|
|
399
|
+
id: 'fabric.linking.preview_panel',
|
|
400
|
+
defaultMessage: 'Open preview panel',
|
|
401
|
+
description: 'Button used to view a side panel view of your content without needing to navigate to it.'
|
|
402
|
+
},
|
|
393
403
|
preview_close: {
|
|
394
404
|
id: 'fabric.linking.preview_close',
|
|
395
405
|
defaultMessage: 'Close preview',
|
|
@@ -8,6 +8,7 @@ exports.useSmartLinkActions = useSmartLinkActions;
|
|
|
8
8
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
9
9
|
var _react = require("react");
|
|
10
10
|
var _uuid = _interopRequireDefault(require("uuid"));
|
|
11
|
+
var _linkProvider = require("@atlaskit/link-provider");
|
|
11
12
|
var _useAnalyticsEvents2 = require("../../common/analytics/generated/use-analytics-events");
|
|
12
13
|
var _extractInvokeDownloadAction = require("../../extractors/action/extract-invoke-download-action");
|
|
13
14
|
var _extractInvokePreviewAction = require("../../extractors/action/extract-invoke-preview-action");
|
|
@@ -29,6 +30,9 @@ function useSmartLinkActions(_ref) {
|
|
|
29
30
|
var linkState = (0, _store.useSmartCardState)(url);
|
|
30
31
|
var _useAnalyticsEvents = (0, _useAnalyticsEvents2.useAnalyticsEvents)(),
|
|
31
32
|
fireEvent = _useAnalyticsEvents.fireEvent;
|
|
33
|
+
var _useSmartLinkContext = (0, _linkProvider.useSmartLinkContext)(),
|
|
34
|
+
isPreviewPanelAvailable = _useSmartLinkContext.isPreviewPanelAvailable,
|
|
35
|
+
openPreviewPanel = _useSmartLinkContext.openPreviewPanel;
|
|
32
36
|
var invokeClientAction = (0, _useInvokeClientAction.default)({
|
|
33
37
|
fireEvent: fireEvent
|
|
34
38
|
});
|
|
@@ -50,10 +54,12 @@ function useSmartLinkActions(_ref) {
|
|
|
50
54
|
}
|
|
51
55
|
var previewActionProps = (0, _extractInvokePreviewAction.extractInvokePreviewAction)(_objectSpread(_objectSpread({}, invokeParam), {}, {
|
|
52
56
|
fireEvent: fireEvent,
|
|
53
|
-
origin: origin
|
|
57
|
+
origin: origin,
|
|
58
|
+
isPreviewPanelAvailable: isPreviewPanelAvailable,
|
|
59
|
+
openPreviewPanel: openPreviewPanel
|
|
54
60
|
}));
|
|
55
61
|
if (previewActionProps) {
|
|
56
|
-
actions.push((0, _toAction.toAction)(previewActionProps, invokeClientAction, _messages.messages.preview_improved, 'preview-content'));
|
|
62
|
+
actions.push((0, _toAction.toAction)(previewActionProps.invokeAction, invokeClientAction, _messages.messages.preview_improved, 'preview-content'));
|
|
57
63
|
}
|
|
58
64
|
return actions;
|
|
59
65
|
}
|
|
@@ -11,7 +11,7 @@ var ANALYTICS_CHANNEL = exports.ANALYTICS_CHANNEL = 'media';
|
|
|
11
11
|
var context = exports.context = {
|
|
12
12
|
componentName: 'smart-cards',
|
|
13
13
|
packageName: "@atlaskit/smart-card",
|
|
14
|
-
packageVersion: "40.
|
|
14
|
+
packageVersion: "40.11.0"
|
|
15
15
|
};
|
|
16
16
|
var TrackQuickActionType = exports.TrackQuickActionType = /*#__PURE__*/function (TrackQuickActionType) {
|
|
17
17
|
TrackQuickActionType["StatusUpdate"] = "StatusUpdate";
|
|
@@ -11,6 +11,8 @@ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/h
|
|
|
11
11
|
var _react = _interopRequireWildcard(require("react"));
|
|
12
12
|
var _reactIntlNext = require("react-intl-next");
|
|
13
13
|
var _growDiagonalMediaServicesActualSize = _interopRequireDefault(require("@atlaskit/icon/core/migration/grow-diagonal--media-services-actual-size"));
|
|
14
|
+
var _panelRight = _interopRequireDefault(require("@atlaskit/icon/core/panel-right"));
|
|
15
|
+
var _expValEquals = require("@atlaskit/tmp-editor-statsig/exp-val-equals");
|
|
14
16
|
var _constants = require("../../../../../constants");
|
|
15
17
|
var _messages = require("../../../../../messages");
|
|
16
18
|
var _flexibleUiContext = require("../../../../../state/flexible-ui-context");
|
|
@@ -25,6 +27,7 @@ var PreviewAction = function PreviewAction(_ref) {
|
|
|
25
27
|
var context = (0, _flexibleUiContext.useFlexibleUiContext)();
|
|
26
28
|
var invoke = (0, _useInvokeClientAction.default)({});
|
|
27
29
|
var data = context === null || context === void 0 || (_context$actions = context.actions) === null || _context$actions === void 0 ? void 0 : _context$actions[_constants.ActionName.PreviewAction];
|
|
30
|
+
var hasPreviewPanel = data === null || data === void 0 ? void 0 : data.hasPreviewPanel;
|
|
28
31
|
var onClick = (0, _react.useCallback)(function () {
|
|
29
32
|
if (data !== null && data !== void 0 && data.invokeAction) {
|
|
30
33
|
invoke(data.invokeAction);
|
|
@@ -33,13 +36,35 @@ var PreviewAction = function PreviewAction(_ref) {
|
|
|
33
36
|
}, [data, invoke, onClickCallback]);
|
|
34
37
|
var isStackItem = props.as === 'stack-item';
|
|
35
38
|
var tooltipMessage = isStackItem ? _messages.messages.preview_description : _messages.messages.preview_improved;
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
+
var actionIcon = (0, _react.useCallback)(function () {
|
|
40
|
+
// Only use panel icon if experiment is enabled and hasPreviewPanel is true
|
|
41
|
+
if ((0, _expValEquals.expValEquals)('platform_hover_card_preview_panel', 'cohort', 'test') && hasPreviewPanel) {
|
|
42
|
+
return /*#__PURE__*/_react.default.createElement(_panelRight.default, {
|
|
43
|
+
color: "currentColor",
|
|
44
|
+
spacing: "spacious",
|
|
45
|
+
label: "Open preview panel"
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
return /*#__PURE__*/_react.default.createElement(_growDiagonalMediaServicesActualSize.default, {
|
|
39
49
|
color: "currentColor",
|
|
40
50
|
spacing: "spacious",
|
|
41
51
|
label: "Open preview"
|
|
42
|
-
})
|
|
52
|
+
});
|
|
53
|
+
}, [hasPreviewPanel]);
|
|
54
|
+
var actionLabel = (0, _react.useCallback)(function () {
|
|
55
|
+
// Only use panel message if experiment is enabled and hasPreviewPanel is true
|
|
56
|
+
if ((0, _expValEquals.expValEquals)('platform_hover_card_preview_panel', 'cohort', 'test') && hasPreviewPanel) {
|
|
57
|
+
return /*#__PURE__*/_react.default.createElement(_reactIntlNext.FormattedMessage, _messages.messages.preview_panel);
|
|
58
|
+
}
|
|
59
|
+
// Fall back to modal message if experiment is enabled, otherwise use original preview message
|
|
60
|
+
if ((0, _expValEquals.expValEquals)('platform_hover_card_preview_panel', 'cohort', 'test')) {
|
|
61
|
+
return /*#__PURE__*/_react.default.createElement(_reactIntlNext.FormattedMessage, _messages.messages.preview_modal);
|
|
62
|
+
}
|
|
63
|
+
return /*#__PURE__*/_react.default.createElement(_reactIntlNext.FormattedMessage, _messages.messages.preview_improved);
|
|
64
|
+
}, [hasPreviewPanel]);
|
|
65
|
+
return data ? /*#__PURE__*/_react.default.createElement(_action.default, (0, _extends2.default)({
|
|
66
|
+
content: actionLabel(),
|
|
67
|
+
icon: actionIcon(),
|
|
43
68
|
onClick: onClick,
|
|
44
69
|
testId: "smart-action-preview-action",
|
|
45
70
|
tooltipMessage: /*#__PURE__*/_react.default.createElement(_reactIntlNext.FormattedMessage, tooltipMessage),
|
|
@@ -8,6 +8,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
8
8
|
exports.default = void 0;
|
|
9
9
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
10
10
|
var _react = _interopRequireWildcard(require("react"));
|
|
11
|
+
var _linkProvider = require("@atlaskit/link-provider");
|
|
11
12
|
var _useAnalyticsEvents2 = require("../../common/analytics/generated/use-analytics-events");
|
|
12
13
|
var _constants = require("../../constants");
|
|
13
14
|
var _flexibleUiContext = require("../../state/flexible-ui-context");
|
|
@@ -43,6 +44,9 @@ var FlexibleCard = function FlexibleCard(_ref) {
|
|
|
43
44
|
url = _ref.url;
|
|
44
45
|
var aiSummaryConfig = (0, _useAiSummaryConfig.useAISummaryConfig)();
|
|
45
46
|
var resolve = (0, _useResolve.default)();
|
|
47
|
+
var _useSmartLinkContext = (0, _linkProvider.useSmartLinkContext)(),
|
|
48
|
+
isPreviewPanelAvailable = _useSmartLinkContext.isPreviewPanelAvailable,
|
|
49
|
+
openPreviewPanel = _useSmartLinkContext.openPreviewPanel;
|
|
46
50
|
var _useAnalyticsEvents = (0, _useAnalyticsEvents2.useAnalyticsEvents)(),
|
|
47
51
|
fireEvent = _useAnalyticsEvents.fireEvent;
|
|
48
52
|
var cardType = cardState.status,
|
|
@@ -62,9 +66,11 @@ var FlexibleCard = function FlexibleCard(_ref) {
|
|
|
62
66
|
resolve: resolve,
|
|
63
67
|
actionOptions: actionOptions,
|
|
64
68
|
status: status,
|
|
65
|
-
url: url
|
|
69
|
+
url: url,
|
|
70
|
+
isPreviewPanelAvailable: isPreviewPanelAvailable,
|
|
71
|
+
openPreviewPanel: openPreviewPanel
|
|
66
72
|
});
|
|
67
|
-
}, [aiSummaryConfig, appearance, fireEvent, details, id, onAuthorize, onClick, origin, renderers, resolve, actionOptions, status, url]);
|
|
73
|
+
}, [aiSummaryConfig, appearance, fireEvent, details, id, onAuthorize, onClick, origin, renderers, resolve, actionOptions, status, url, isPreviewPanelAvailable, openPreviewPanel]);
|
|
68
74
|
var flexibleCardContext = (0, _react.useMemo)(function () {
|
|
69
75
|
return {
|
|
70
76
|
data: context,
|
|
@@ -19,7 +19,7 @@ var _excluded = ["href", "children", "checkSafety", "onClick", "testId", "isLink
|
|
|
19
19
|
_excluded2 = ["isLinkSafe", "showSafetyWarningModal"];
|
|
20
20
|
var PACKAGE_DATA = {
|
|
21
21
|
packageName: "@atlaskit/smart-card",
|
|
22
|
-
packageVersion: "40.
|
|
22
|
+
packageVersion: "40.11.0",
|
|
23
23
|
componentName: 'linkUrl'
|
|
24
24
|
};
|
|
25
25
|
var Anchor = (0, _click.withLinkClickedEvent)('a');
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import { extractPreview as extractPreviewData, extractSmartLinkEmbed, extractSmartLinkProvider, extractSmartLinkTitle, extractSmartLinkUrl } from '@atlaskit/link-extractors';
|
|
1
|
+
import { extractPreview as extractPreviewData, extractSmartLinkAri, extractSmartLinkEmbed, extractSmartLinkProvider, extractSmartLinkTitle, extractSmartLinkUrl } from '@atlaskit/link-extractors';
|
|
2
|
+
import { expValEquals } from '@atlaskit/tmp-editor-statsig/exp-val-equals';
|
|
2
3
|
import { ActionName, CardAction } from '../../index';
|
|
3
4
|
import { getExtensionKey } from '../../state/helpers';
|
|
4
5
|
import { canShowAction } from '../../utils/actions/can-show-action';
|
|
@@ -17,41 +18,62 @@ export const extractInvokePreviewAction = param => {
|
|
|
17
18
|
onClose,
|
|
18
19
|
id,
|
|
19
20
|
origin,
|
|
20
|
-
response
|
|
21
|
+
response,
|
|
22
|
+
isPreviewPanelAvailable,
|
|
23
|
+
openPreviewPanel
|
|
21
24
|
} = param;
|
|
25
|
+
const ari = extractSmartLinkAri(response);
|
|
26
|
+
const url = extractSmartLinkUrl(response);
|
|
27
|
+
const name = extractSmartLinkTitle(response);
|
|
28
|
+
const hasPreviewPanelParams = Boolean(expValEquals('platform_hover_card_preview_panel', 'cohort', 'test') && isPreviewPanelAvailable && openPreviewPanel && ari && url && name);
|
|
29
|
+
const hasPreviewPanel = hasPreviewPanelParams && isPreviewPanelAvailable({
|
|
30
|
+
ari: ari
|
|
31
|
+
});
|
|
32
|
+
const data = response.data;
|
|
33
|
+
const meta = response.meta;
|
|
22
34
|
if (!canShowAction(CardAction.PreviewAction, actionOptions)) {
|
|
23
35
|
return;
|
|
24
36
|
}
|
|
25
|
-
const data = response.data;
|
|
26
|
-
const meta = response.meta;
|
|
27
37
|
const src = (_extractPreviewData = extractPreviewData(data, 'web')) === null || _extractPreviewData === void 0 ? void 0 : _extractPreviewData.src;
|
|
28
38
|
if (src) {
|
|
29
39
|
const extensionKey = getExtensionKey(response);
|
|
30
40
|
return {
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
41
|
+
invokeAction: {
|
|
42
|
+
actionFn: async () => {
|
|
43
|
+
if (hasPreviewPanel) {
|
|
44
|
+
openPreviewPanel({
|
|
45
|
+
ari: ari,
|
|
46
|
+
url: url,
|
|
47
|
+
name: name,
|
|
48
|
+
iconUrl: undefined
|
|
49
|
+
});
|
|
50
|
+
} else {
|
|
51
|
+
var _extractSmartLinkProv, _extractSmartLinkEmbe;
|
|
52
|
+
await openEmbedModal({
|
|
53
|
+
fireEvent,
|
|
54
|
+
extensionKey,
|
|
55
|
+
id,
|
|
56
|
+
invokeDownloadAction: extractInvokeDownloadAction(param),
|
|
57
|
+
invokeViewAction: extractInvokeViewAction(param, true),
|
|
58
|
+
isSupportTheming: extractIsSupportTheming(meta),
|
|
59
|
+
isTrusted: extractIsTrusted(meta),
|
|
60
|
+
linkIcon: extractLinkIcon(response),
|
|
61
|
+
providerName: (_extractSmartLinkProv = extractSmartLinkProvider(response)) === null || _extractSmartLinkProv === void 0 ? void 0 : _extractSmartLinkProv.text,
|
|
62
|
+
onClose,
|
|
63
|
+
origin,
|
|
64
|
+
src: (_extractSmartLinkEmbe = extractSmartLinkEmbed(response)) === null || _extractSmartLinkEmbe === void 0 ? void 0 : _extractSmartLinkEmbe.src,
|
|
65
|
+
title: extractSmartLinkTitle(response),
|
|
66
|
+
url
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
},
|
|
70
|
+
actionSubjectId: 'invokePreviewScreen',
|
|
71
|
+
actionType: ActionName.PreviewAction,
|
|
72
|
+
display,
|
|
73
|
+
extensionKey,
|
|
74
|
+
id
|
|
49
75
|
},
|
|
50
|
-
|
|
51
|
-
actionType: ActionName.PreviewAction,
|
|
52
|
-
display,
|
|
53
|
-
extensionKey,
|
|
54
|
-
id
|
|
76
|
+
hasPreviewPanel: hasPreviewPanel
|
|
55
77
|
};
|
|
56
78
|
}
|
|
57
79
|
};
|
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
import { extractInvokePreviewAction } from '../../action/extract-invoke-preview-action';
|
|
2
2
|
export const extractPreviewClientAction = param => {
|
|
3
|
-
const
|
|
4
|
-
return
|
|
5
|
-
invokeAction
|
|
6
|
-
} : undefined;
|
|
3
|
+
const result = extractInvokePreviewAction(param);
|
|
4
|
+
return result ? result : undefined;
|
|
7
5
|
};
|
|
@@ -14,7 +14,9 @@ export const extractFlexibleCardActions = ({
|
|
|
14
14
|
id,
|
|
15
15
|
origin,
|
|
16
16
|
response,
|
|
17
|
-
url
|
|
17
|
+
url,
|
|
18
|
+
isPreviewPanelAvailable,
|
|
19
|
+
openPreviewPanel
|
|
18
20
|
}) => {
|
|
19
21
|
const action = {
|
|
20
22
|
[ActionName.CopyLinkAction]: extractCopyLinkClientAction({
|
|
@@ -36,7 +38,9 @@ export const extractFlexibleCardActions = ({
|
|
|
36
38
|
fireEvent,
|
|
37
39
|
id,
|
|
38
40
|
origin,
|
|
39
|
-
response
|
|
41
|
+
response,
|
|
42
|
+
isPreviewPanelAvailable,
|
|
43
|
+
openPreviewPanel
|
|
40
44
|
}),
|
|
41
45
|
[ActionName.AutomationAction]: extractAutomationAction(response),
|
|
42
46
|
[InternalActionName.AISummaryAction]: extractAISummaryAction(response, url, actionOptions, aiSummaryConfig),
|
|
@@ -18,8 +18,8 @@ const toInvokeRequest = (extensionKey, resourceIdentifiers, actionType, details)
|
|
|
18
18
|
details
|
|
19
19
|
};
|
|
20
20
|
};
|
|
21
|
-
const extractAction = (response, id, actionOptions, appearance, origin, fireEvent, resolve) => {
|
|
22
|
-
var _action$dataRetrieval, _action$dataUpdateAct;
|
|
21
|
+
const extractAction = (response, id, actionOptions, appearance, origin, fireEvent, resolve, isPreviewPanelAvailable, openPreviewPanel) => {
|
|
22
|
+
var _action$dataRetrieval, _extractInvokePreview, _action$dataUpdateAct;
|
|
23
23
|
const extensionKey = getExtensionKey(response);
|
|
24
24
|
const data = response === null || response === void 0 ? void 0 : response.data;
|
|
25
25
|
const actions = extractServerAction(data);
|
|
@@ -32,15 +32,17 @@ const extractAction = (response, id, actionOptions, appearance, origin, fireEven
|
|
|
32
32
|
}
|
|
33
33
|
const read = toInvokeRequest(extensionKey, action.resourceIdentifiers, (_action$dataRetrieval = action.dataRetrievalAction) === null || _action$dataRetrieval === void 0 ? void 0 : _action$dataRetrieval.name);
|
|
34
34
|
const url = extractLink(data);
|
|
35
|
-
const invokePreviewAction = response ? extractInvokePreviewAction({
|
|
35
|
+
const invokePreviewAction = response ? (_extractInvokePreview = extractInvokePreviewAction({
|
|
36
36
|
actionOptions,
|
|
37
37
|
appearance,
|
|
38
38
|
fireEvent,
|
|
39
39
|
id,
|
|
40
40
|
onClose: resolve ? () => url && resolve(url, true) : undefined,
|
|
41
41
|
origin,
|
|
42
|
-
response
|
|
43
|
-
|
|
42
|
+
response,
|
|
43
|
+
isPreviewPanelAvailable,
|
|
44
|
+
openPreviewPanel
|
|
45
|
+
})) === null || _extractInvokePreview === void 0 ? void 0 : _extractInvokePreview.invokeAction : undefined;
|
|
44
46
|
const details = {
|
|
45
47
|
id,
|
|
46
48
|
url,
|
|
@@ -52,7 +54,7 @@ const extractAction = (response, id, actionOptions, appearance, origin, fireEven
|
|
|
52
54
|
update
|
|
53
55
|
} : undefined;
|
|
54
56
|
};
|
|
55
|
-
const extractState = (response, actionOptions, id, appearance, origin, fireEvent, resolve) => {
|
|
57
|
+
const extractState = (response, actionOptions, id, appearance, origin, fireEvent, resolve, isPreviewPanelAvailable, openPreviewPanel) => {
|
|
56
58
|
if (!response || !response.data) {
|
|
57
59
|
return;
|
|
58
60
|
}
|
|
@@ -63,7 +65,7 @@ const extractState = (response, actionOptions, id, appearance, origin, fireEvent
|
|
|
63
65
|
if (!canShowAction(CardAction.ChangeStatusAction, actionOptions)) {
|
|
64
66
|
return lozenge;
|
|
65
67
|
}
|
|
66
|
-
const action = extractAction(response, id, actionOptions, appearance, origin, fireEvent, resolve);
|
|
68
|
+
const action = extractAction(response, id, actionOptions, appearance, origin, fireEvent, resolve, isPreviewPanelAvailable, openPreviewPanel);
|
|
67
69
|
return {
|
|
68
70
|
...lozenge,
|
|
69
71
|
action
|