@atlaskit/smart-card 26.2.1 → 26.3.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 +14 -0
- package/dist/cjs/extractors/block/index.js +5 -4
- package/dist/cjs/extractors/common/actions/extractPreviewAction.js +4 -2
- package/dist/cjs/messages.js +6 -0
- package/dist/cjs/state/actions/index.js +27 -11
- package/dist/cjs/state/hooks/use-invoke/index.js +8 -28
- package/dist/cjs/state/hooks/use-resolve/index.js +28 -12
- package/dist/cjs/utils/analytics/SmartLinkAnalyticsContext.js +47 -0
- package/dist/cjs/utils/analytics/analytics.js +13 -1
- package/dist/cjs/version.json +1 -1
- package/dist/cjs/view/BlockCard/actions/PreviewAction.js +4 -2
- package/dist/cjs/view/BlockCard/index.js +3 -1
- package/dist/cjs/view/CardWithUrl/component.js +13 -3
- package/dist/cjs/view/FlexibleCard/components/actions/action/preview-action/index.js +7 -1
- package/dist/cjs/view/FlexibleCard/components/actions/utils.js +1 -1
- package/dist/cjs/view/FlexibleCard/components/common/lozenge-action/index.js +38 -30
- package/dist/cjs/view/FlexibleCard/components/common/lozenge-action/lozenge-action-analytics.js +31 -0
- package/dist/cjs/view/FlexibleCard/components/common/lozenge-action/lozenge-action-error/styled.js +1 -1
- package/dist/cjs/view/HoverCard/components/HoverCardComponent.js +21 -2
- package/dist/cjs/view/HoverCard/components/views/resolved/index.js +26 -3
- package/dist/es2019/extractors/block/index.js +5 -4
- package/dist/es2019/extractors/common/actions/extractPreviewAction.js +4 -2
- package/dist/es2019/messages.js +6 -0
- package/dist/es2019/state/actions/index.js +32 -12
- package/dist/es2019/state/hooks/use-invoke/index.js +4 -23
- package/dist/es2019/state/hooks/use-resolve/index.js +28 -12
- package/dist/es2019/utils/analytics/SmartLinkAnalyticsContext.js +35 -0
- package/dist/es2019/utils/analytics/analytics.js +10 -0
- package/dist/es2019/version.json +1 -1
- package/dist/es2019/view/BlockCard/actions/PreviewAction.js +17 -13
- package/dist/es2019/view/BlockCard/index.js +3 -1
- package/dist/es2019/view/CardWithUrl/component.js +9 -2
- package/dist/es2019/view/FlexibleCard/components/actions/action/preview-action/index.js +7 -1
- package/dist/es2019/view/FlexibleCard/components/actions/utils.js +1 -1
- package/dist/es2019/view/FlexibleCard/components/common/lozenge-action/index.js +14 -6
- package/dist/es2019/view/FlexibleCard/components/common/lozenge-action/lozenge-action-analytics.js +21 -0
- package/dist/es2019/view/FlexibleCard/components/common/lozenge-action/lozenge-action-error/styled.js +1 -0
- package/dist/es2019/view/HoverCard/components/HoverCardComponent.js +21 -2
- package/dist/es2019/view/HoverCard/components/views/resolved/index.js +36 -11
- package/dist/esm/extractors/block/index.js +5 -4
- package/dist/esm/extractors/common/actions/extractPreviewAction.js +4 -2
- package/dist/esm/messages.js +6 -0
- package/dist/esm/state/actions/index.js +27 -11
- package/dist/esm/state/hooks/use-invoke/index.js +8 -28
- package/dist/esm/state/hooks/use-resolve/index.js +28 -12
- package/dist/esm/utils/analytics/SmartLinkAnalyticsContext.js +36 -0
- package/dist/esm/utils/analytics/analytics.js +10 -0
- package/dist/esm/version.json +1 -1
- package/dist/esm/view/BlockCard/actions/PreviewAction.js +4 -2
- package/dist/esm/view/BlockCard/index.js +3 -1
- package/dist/esm/view/CardWithUrl/component.js +11 -2
- package/dist/esm/view/FlexibleCard/components/actions/action/preview-action/index.js +7 -1
- package/dist/esm/view/FlexibleCard/components/actions/utils.js +1 -1
- package/dist/esm/view/FlexibleCard/components/common/lozenge-action/index.js +38 -30
- package/dist/esm/view/FlexibleCard/components/common/lozenge-action/lozenge-action-analytics.js +21 -0
- package/dist/esm/view/FlexibleCard/components/common/lozenge-action/lozenge-action-error/styled.js +1 -1
- package/dist/esm/view/HoverCard/components/HoverCardComponent.js +21 -2
- package/dist/esm/view/HoverCard/components/views/resolved/index.js +26 -3
- package/dist/types/extractors/block/index.d.ts +2 -2
- package/dist/types/extractors/block/types.d.ts +1 -0
- package/dist/types/extractors/common/actions/extractPreviewAction.d.ts +1 -1
- package/dist/types/messages.d.ts +1 -1
- package/dist/types/state/analytics/useSmartLinkAnalytics.d.ts +6 -3
- package/dist/types/state/flexible-ui-context/index.d.ts +10 -6
- package/dist/types/state/hooks/use-invoke/index.d.ts +1 -7
- package/dist/types/state/hooks/useSmartLink.d.ts +5 -3
- package/dist/types/utils/analytics/SmartLinkAnalyticsContext.d.ts +9 -0
- package/dist/types/utils/analytics/analytics.d.ts +11 -3
- package/dist/types/utils/mocks.d.ts +5 -3
- package/dist/types/view/BlockCard/actions/PreviewAction.d.ts +2 -1
- package/dist/types/view/BlockCard/views/ResolvedView.d.ts +2 -0
- package/dist/types/view/CardWithUrl/component.d.ts +1 -1
- package/dist/types/view/FlexibleCard/components/common/lozenge-action/lozenge-action-analytics.d.ts +21 -0
- package/dist/types/view/HoverCard/components/views/resolved/index.d.ts +1 -1
- package/dist/types-ts4.5/extractors/block/index.d.ts +2 -2
- package/dist/types-ts4.5/extractors/block/types.d.ts +1 -0
- package/dist/types-ts4.5/extractors/common/actions/extractPreviewAction.d.ts +1 -1
- package/dist/types-ts4.5/messages.d.ts +1 -1
- package/dist/types-ts4.5/state/analytics/useSmartLinkAnalytics.d.ts +6 -3
- package/dist/types-ts4.5/state/flexible-ui-context/index.d.ts +10 -6
- package/dist/types-ts4.5/state/hooks/use-invoke/index.d.ts +1 -7
- package/dist/types-ts4.5/state/hooks/useSmartLink.d.ts +5 -3
- package/dist/types-ts4.5/utils/analytics/SmartLinkAnalyticsContext.d.ts +9 -0
- package/dist/types-ts4.5/utils/analytics/analytics.d.ts +11 -3
- package/dist/types-ts4.5/utils/mocks.d.ts +5 -3
- package/dist/types-ts4.5/view/BlockCard/actions/PreviewAction.d.ts +2 -1
- package/dist/types-ts4.5/view/BlockCard/views/ResolvedView.d.ts +2 -0
- package/dist/types-ts4.5/view/CardWithUrl/component.d.ts +1 -1
- package/dist/types-ts4.5/view/FlexibleCard/components/common/lozenge-action/lozenge-action-analytics.d.ts +21 -0
- package/dist/types-ts4.5/view/HoverCard/components/views/resolved/index.d.ts +1 -1
- package/package.json +11 -3
- package/report.api.md +21 -3
- package/tmp/api-report-tmp.d.ts +21 -3
|
@@ -24,6 +24,8 @@ var _createStatusUpdateRequest = _interopRequireDefault(require("../../../../../
|
|
|
24
24
|
var _useResolve = _interopRequireDefault(require("../../../../../state/hooks/use-resolve"));
|
|
25
25
|
var _types = require("./lozenge-action-error/types");
|
|
26
26
|
var _flexibleUiContext = require("../../../../../state/flexible-ui-context");
|
|
27
|
+
var _analytics = require("../../../../../utils/analytics/analytics");
|
|
28
|
+
var _lozengeActionAnalytics = require("./lozenge-action-analytics");
|
|
27
29
|
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); }
|
|
28
30
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
29
31
|
/** @jsx jsx */
|
|
@@ -76,11 +78,7 @@ var LozengeAction = function LozengeAction(_ref) {
|
|
|
76
78
|
var reload = (0, _useResolve.default)();
|
|
77
79
|
//TODO EDM-6583 Replace usage of useFlexibleUiAnalyticsContext with linking platform analytics context from find team.
|
|
78
80
|
var analytics = (0, _flexibleUiContext.useFlexibleUiAnalyticsContext)();
|
|
79
|
-
var invoke = (0, _useInvoke.default)(
|
|
80
|
-
started: analytics === null || analytics === void 0 ? void 0 : analytics.track.smartLinkQuickActionStarted,
|
|
81
|
-
success: analytics === null || analytics === void 0 ? void 0 : analytics.track.smartLinkQuickActionSuccess,
|
|
82
|
-
failed: analytics === null || analytics === void 0 ? void 0 : analytics.track.smartLinkQuickActionFailed
|
|
83
|
-
});
|
|
81
|
+
var invoke = (0, _useInvoke.default)();
|
|
84
82
|
(0, _react2.useEffect)(function () {
|
|
85
83
|
setSelected({
|
|
86
84
|
text: text,
|
|
@@ -99,47 +97,52 @@ var LozengeAction = function LozengeAction(_ref) {
|
|
|
99
97
|
case 0:
|
|
100
98
|
setIsOpen(args.isOpen);
|
|
101
99
|
if (!args.isOpen) {
|
|
102
|
-
_context.next =
|
|
100
|
+
_context.next = 24;
|
|
103
101
|
break;
|
|
104
102
|
}
|
|
105
103
|
analytics === null || analytics === void 0 ? void 0 : analytics.ui.smartLinkLozengeActionClickedEvent();
|
|
104
|
+
analytics === null || analytics === void 0 ? void 0 : analytics.track.smartLinkQuickActionStarted({
|
|
105
|
+
smartLinkActionType: _analytics.TrackQuickActionType.StatusUpdate
|
|
106
|
+
});
|
|
106
107
|
if (!(!isLoaded && action !== null && action !== void 0 && action.read)) {
|
|
107
|
-
_context.next =
|
|
108
|
+
_context.next = 24;
|
|
108
109
|
break;
|
|
109
110
|
}
|
|
110
|
-
_context.prev =
|
|
111
|
+
_context.prev = 5;
|
|
111
112
|
setIsLoading(true);
|
|
112
|
-
_context.next =
|
|
113
|
+
_context.next = 9;
|
|
113
114
|
return invoke(action.read, _extractLozengeActionItems.default);
|
|
114
|
-
case
|
|
115
|
+
case 9:
|
|
115
116
|
responseItems = _context.sent;
|
|
116
117
|
validItems = typeof text === 'string' ? validateItems(responseItems, text) : responseItems;
|
|
117
118
|
setItems(validItems);
|
|
118
119
|
setIsLoaded(true);
|
|
119
120
|
if ((validItems === null || validItems === void 0 ? void 0 : validItems.length) === 0) {
|
|
121
|
+
analytics === null || analytics === void 0 ? void 0 : analytics.track.smartLinkQuickActionFailed(_lozengeActionAnalytics.permissionLoadErrorAnalyticsPayload);
|
|
120
122
|
setErrorMessage(_types.LozengeActionErrorMessages.noData);
|
|
121
123
|
setIsLoaded(false);
|
|
122
124
|
}
|
|
123
|
-
_context.next =
|
|
125
|
+
_context.next = 21;
|
|
124
126
|
break;
|
|
125
|
-
case
|
|
126
|
-
_context.prev =
|
|
127
|
-
_context.t0 = _context["catch"](
|
|
127
|
+
case 16:
|
|
128
|
+
_context.prev = 16;
|
|
129
|
+
_context.t0 = _context["catch"](5);
|
|
128
130
|
setErrorMessage(_types.LozengeActionErrorMessages.unknown);
|
|
129
131
|
setIsLoaded(false);
|
|
130
|
-
|
|
131
|
-
|
|
132
|
+
analytics === null || analytics === void 0 ? void 0 : analytics.track.smartLinkQuickActionFailed(_lozengeActionAnalytics.unknownLoadErrorAnalyticsPayload);
|
|
133
|
+
case 21:
|
|
134
|
+
_context.prev = 21;
|
|
132
135
|
setIsLoading(false);
|
|
133
|
-
return _context.finish(
|
|
134
|
-
case
|
|
136
|
+
return _context.finish(21);
|
|
137
|
+
case 24:
|
|
135
138
|
if (!args.isOpen) {
|
|
136
139
|
setErrorMessage(undefined);
|
|
137
140
|
}
|
|
138
|
-
case
|
|
141
|
+
case 25:
|
|
139
142
|
case "end":
|
|
140
143
|
return _context.stop();
|
|
141
144
|
}
|
|
142
|
-
}, _callee, null, [[
|
|
145
|
+
}, _callee, null, [[5, 16, 21, 24]]);
|
|
143
146
|
}));
|
|
144
147
|
return function (_x) {
|
|
145
148
|
return _ref3.apply(this, arguments);
|
|
@@ -162,7 +165,7 @@ var LozengeAction = function LozengeAction(_ref) {
|
|
|
162
165
|
analytics === null || analytics === void 0 ? void 0 : analytics.ui.smartLinkLozengeActionListItemClickedEvent();
|
|
163
166
|
updateAction = action === null || action === void 0 ? void 0 : action.update;
|
|
164
167
|
if (!(updateAction && id)) {
|
|
165
|
-
_context2.next =
|
|
168
|
+
_context2.next = 17;
|
|
166
169
|
break;
|
|
167
170
|
}
|
|
168
171
|
setIsLoading(true);
|
|
@@ -178,34 +181,39 @@ var LozengeAction = function LozengeAction(_ref) {
|
|
|
178
181
|
setIsLoaded(false);
|
|
179
182
|
setIsOpen(false);
|
|
180
183
|
setItems([]);
|
|
184
|
+
analytics === null || analytics === void 0 ? void 0 : analytics.track.smartLinkQuickActionSuccess({
|
|
185
|
+
smartLinkActionType: _analytics.TrackQuickActionType.StatusUpdate
|
|
186
|
+
});
|
|
181
187
|
if (!url) {
|
|
182
|
-
_context2.next =
|
|
188
|
+
_context2.next = 17;
|
|
183
189
|
break;
|
|
184
190
|
}
|
|
185
|
-
_context2.next =
|
|
191
|
+
_context2.next = 17;
|
|
186
192
|
return reload(url, true, undefined, linkId);
|
|
187
|
-
case
|
|
188
|
-
_context2.next =
|
|
193
|
+
case 17:
|
|
194
|
+
_context2.next = 23;
|
|
189
195
|
break;
|
|
190
|
-
case
|
|
191
|
-
_context2.prev =
|
|
196
|
+
case 19:
|
|
197
|
+
_context2.prev = 19;
|
|
192
198
|
_context2.t0 = _context2["catch"](0);
|
|
193
199
|
setIsLoading(false);
|
|
194
200
|
if (isInvokeCustomError(_context2.t0)) {
|
|
195
201
|
setErrorMessage(_context2.t0.message);
|
|
202
|
+
analytics === null || analytics === void 0 ? void 0 : analytics.track.smartLinkQuickActionFailed(_lozengeActionAnalytics.validationUpdateErrorAnalyticsPayload);
|
|
196
203
|
} else {
|
|
197
204
|
setErrorMessage(_types.LozengeActionErrorMessages.updateFailed);
|
|
205
|
+
analytics === null || analytics === void 0 ? void 0 : analytics.track.smartLinkQuickActionFailed(_lozengeActionAnalytics.unknownUpdateErrorAnalyticsPayload);
|
|
198
206
|
}
|
|
199
|
-
case
|
|
207
|
+
case 23:
|
|
200
208
|
case "end":
|
|
201
209
|
return _context2.stop();
|
|
202
210
|
}
|
|
203
|
-
}, _callee2, null, [[0,
|
|
211
|
+
}, _callee2, null, [[0, 19]]);
|
|
204
212
|
}));
|
|
205
213
|
return function (_x2, _x3, _x4) {
|
|
206
214
|
return _ref4.apply(this, arguments);
|
|
207
215
|
};
|
|
208
|
-
}(), [action === null || action === void 0 ? void 0 : action.update, analytics
|
|
216
|
+
}(), [action === null || action === void 0 ? void 0 : action.update, analytics, invoke, linkId, reload, url]);
|
|
209
217
|
var dropdownItemGroup = (0, _react2.useMemo)(function () {
|
|
210
218
|
if (errorMessage) {
|
|
211
219
|
return (0, _react.jsx)(_lozengeActionError.default, {
|
package/dist/cjs/view/FlexibleCard/components/common/lozenge-action/lozenge-action-analytics.js
ADDED
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.validationUpdateErrorAnalyticsPayload = exports.unknownUpdateErrorAnalyticsPayload = exports.unknownLoadErrorAnalyticsPayload = exports.permissionLoadErrorAnalyticsPayload = void 0;
|
|
7
|
+
var _analytics = require("../../../../../utils/analytics/analytics");
|
|
8
|
+
var unknownLoadErrorAnalyticsPayload = {
|
|
9
|
+
smartLinkActionType: _analytics.TrackQuickActionType.StatusUpdate,
|
|
10
|
+
reason: _analytics.TrackQuickActionFailureReason.UnknownError,
|
|
11
|
+
step: 'load'
|
|
12
|
+
};
|
|
13
|
+
exports.unknownLoadErrorAnalyticsPayload = unknownLoadErrorAnalyticsPayload;
|
|
14
|
+
var permissionLoadErrorAnalyticsPayload = {
|
|
15
|
+
smartLinkActionType: _analytics.TrackQuickActionType.StatusUpdate,
|
|
16
|
+
reason: _analytics.TrackQuickActionFailureReason.PermissionError,
|
|
17
|
+
step: 'load'
|
|
18
|
+
};
|
|
19
|
+
exports.permissionLoadErrorAnalyticsPayload = permissionLoadErrorAnalyticsPayload;
|
|
20
|
+
var unknownUpdateErrorAnalyticsPayload = {
|
|
21
|
+
smartLinkActionType: _analytics.TrackQuickActionType.StatusUpdate,
|
|
22
|
+
reason: _analytics.TrackQuickActionFailureReason.UnknownError,
|
|
23
|
+
step: 'update'
|
|
24
|
+
};
|
|
25
|
+
exports.unknownUpdateErrorAnalyticsPayload = unknownUpdateErrorAnalyticsPayload;
|
|
26
|
+
var validationUpdateErrorAnalyticsPayload = {
|
|
27
|
+
smartLinkActionType: _analytics.TrackQuickActionType.StatusUpdate,
|
|
28
|
+
reason: _analytics.TrackQuickActionFailureReason.ValidationError,
|
|
29
|
+
step: 'update'
|
|
30
|
+
};
|
|
31
|
+
exports.validationUpdateErrorAnalyticsPayload = validationUpdateErrorAnalyticsPayload;
|
package/dist/cjs/view/FlexibleCard/components/common/lozenge-action/lozenge-action-error/styled.js
CHANGED
|
@@ -15,7 +15,7 @@ exports.dropdownItemGroupStyles = dropdownItemGroupStyles;
|
|
|
15
15
|
var sharedBlockStyles = (0, _react.css)(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2.default)(["\n display: flex;\n gap: 0.5rem;\n line-height: 1rem;\n min-width: 0;\n overflow: hidden;\n flex-direction: row;\n align-items: center;\n"])));
|
|
16
16
|
var contentStyles = (0, _react.css)(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2.default)(["\n ", ";\n\n margin-top: ", ";\n align-items: flex-start;\n\n > span,\n > div {\n font-size: 0.875rem;\n line-height: 1.25rem;\n color: ", ";\n }\n"])), sharedBlockStyles, "var(--ds-space-025, 2px)", "var(--ds-text, ".concat(_colors.N800, ")"));
|
|
17
17
|
exports.contentStyles = contentStyles;
|
|
18
|
-
var linkStyles = (0, _react.css)(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2.default)(["\n ", ";\n\n font-size: 0.875rem;\n margin-top: 10px;\n margin-left: ", ";\n margin-bottom: ", ";\n"])), sharedBlockStyles, "var(--ds-space-400, 32px)", "var(--ds-space-025, 2px)");
|
|
18
|
+
var linkStyles = (0, _react.css)(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2.default)(["\n ", ";\n\n cursor: pointer;\n font-size: 0.875rem;\n margin-top: 10px;\n margin-left: ", ";\n margin-bottom: ", ";\n"])), sharedBlockStyles, "var(--ds-space-400, 32px)", "var(--ds-space-025, 2px)");
|
|
19
19
|
exports.linkStyles = linkStyles;
|
|
20
20
|
var textStyles = function textStyles(maxLines) {
|
|
21
21
|
return (0, _react.css)(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2.default)(["\n line-height: 1rem;\n white-space: normal;\n ", ";\n"])), (0, _utils.getTruncateStyles)(maxLines));
|
|
@@ -8,6 +8,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
8
8
|
exports.HoverCardComponent = void 0;
|
|
9
9
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
10
10
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
11
|
+
var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
|
|
11
12
|
var _popup = _interopRequireDefault(require("@atlaskit/popup"));
|
|
12
13
|
var _react = require("@emotion/react");
|
|
13
14
|
var _react2 = _interopRequireWildcard(require("react"));
|
|
@@ -17,6 +18,7 @@ var _store = require("../../../state/store");
|
|
|
17
18
|
var _HoverCardContent = _interopRequireDefault(require("../components/HoverCardContent"));
|
|
18
19
|
var _styled = require("../styled");
|
|
19
20
|
var _constants = require("../../../constants");
|
|
21
|
+
var _SmartLinkAnalyticsContext = require("../../../utils/analytics/SmartLinkAnalyticsContext");
|
|
20
22
|
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); }
|
|
21
23
|
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; }
|
|
22
24
|
/** @jsx jsx */
|
|
@@ -24,6 +26,7 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
|
|
|
24
26
|
var HoverCardComponent = function HoverCardComponent(_ref) {
|
|
25
27
|
var children = _ref.children,
|
|
26
28
|
url = _ref.url,
|
|
29
|
+
id = _ref.id,
|
|
27
30
|
analyticsHandler = _ref.analyticsHandler,
|
|
28
31
|
analytics = _ref.analytics,
|
|
29
32
|
_ref$canOpen = _ref.canOpen,
|
|
@@ -133,7 +136,23 @@ var HoverCardComponent = function HoverCardComponent(_ref) {
|
|
|
133
136
|
}, [closeOnChildClick, hideCard]);
|
|
134
137
|
var content = (0, _react2.useCallback)(function (_ref2) {
|
|
135
138
|
var update = _ref2.update;
|
|
136
|
-
return (0, _react.jsx)(
|
|
139
|
+
return (0, _platformFeatureFlags.getBooleanFF)('platform.linking-platform.smart-card.enable-analytics-context') ? (0, _react.jsx)(_SmartLinkAnalyticsContext.SmartLinkAnalyticsContext, {
|
|
140
|
+
url: url,
|
|
141
|
+
appearance: _constants.CardDisplay.HoverCardPreview,
|
|
142
|
+
id: id
|
|
143
|
+
}, (0, _react.jsx)(_HoverCardContent.default, {
|
|
144
|
+
onMouseEnter: initShowCard,
|
|
145
|
+
onMouseLeave: initHideCard,
|
|
146
|
+
analytics: analytics,
|
|
147
|
+
cardActions: filteredActions,
|
|
148
|
+
cardState: linkState,
|
|
149
|
+
onActionClick: onActionClick,
|
|
150
|
+
onResolve: update,
|
|
151
|
+
renderers: renderers,
|
|
152
|
+
showServerActions: showServerActions,
|
|
153
|
+
url: url,
|
|
154
|
+
id: id
|
|
155
|
+
})) : (0, _react.jsx)(_HoverCardContent.default, {
|
|
137
156
|
onMouseEnter: initShowCard,
|
|
138
157
|
onMouseLeave: initHideCard,
|
|
139
158
|
analytics: analytics,
|
|
@@ -145,7 +164,7 @@ var HoverCardComponent = function HoverCardComponent(_ref) {
|
|
|
145
164
|
showServerActions: showServerActions,
|
|
146
165
|
url: url
|
|
147
166
|
});
|
|
148
|
-
}, [analytics, initHideCard, initShowCard, filteredActions, linkState, onActionClick, renderers, showServerActions, url]);
|
|
167
|
+
}, [analytics, initHideCard, initShowCard, filteredActions, linkState, onActionClick, renderers, showServerActions, url, id]);
|
|
149
168
|
var trigger = (0, _react2.useCallback)(function (triggerProps) {
|
|
150
169
|
return (0, _react.jsx)("span", {
|
|
151
170
|
ref: parentSpan
|
|
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
value: true
|
|
7
7
|
});
|
|
8
8
|
exports.toFooterActions = exports.default = void 0;
|
|
9
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
9
10
|
var _react = _interopRequireWildcard(require("react"));
|
|
10
11
|
var _linkProvider = require("@atlaskit/link-provider");
|
|
11
12
|
var _extractors = require("@atlaskit/linking-common/extractors");
|
|
@@ -16,10 +17,31 @@ var _FlexibleCard = _interopRequireDefault(require("../../../../FlexibleCard"));
|
|
|
16
17
|
var _utils = require("../../../utils");
|
|
17
18
|
var _SnippetOrPreview = _interopRequireDefault(require("../../SnippetOrPreview"));
|
|
18
19
|
var _extractMetadata = require("../../../../../extractors/hover/extractMetadata");
|
|
20
|
+
var _messages = require("../../../../../messages");
|
|
21
|
+
var _reactIntlNext = require("react-intl-next");
|
|
19
22
|
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); }
|
|
20
23
|
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; }
|
|
21
|
-
var
|
|
24
|
+
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; }
|
|
25
|
+
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; }
|
|
26
|
+
var toFooterActions = function toFooterActions(cardActions, onActionClick, enableImprovedPreviewAction) {
|
|
27
|
+
var appearance = enableImprovedPreviewAction ? {
|
|
28
|
+
appearance: 'primary'
|
|
29
|
+
} : undefined;
|
|
30
|
+
var previewText = enableImprovedPreviewAction ? _messages.messages.preview_improved : _messages.messages.preview;
|
|
22
31
|
return cardActions.map(function (action) {
|
|
32
|
+
if (action.id === 'preview-content') {
|
|
33
|
+
return _objectSpread({
|
|
34
|
+
content: /*#__PURE__*/_react.default.createElement(_reactIntlNext.FormattedMessage, previewText),
|
|
35
|
+
name: _constants.ActionName.CustomAction,
|
|
36
|
+
onClick: function onClick() {
|
|
37
|
+
if (onActionClick) {
|
|
38
|
+
onActionClick(action.id);
|
|
39
|
+
}
|
|
40
|
+
return action.invoke();
|
|
41
|
+
},
|
|
42
|
+
testId: action.id
|
|
43
|
+
}, appearance);
|
|
44
|
+
}
|
|
23
45
|
return {
|
|
24
46
|
content: action.text,
|
|
25
47
|
name: _constants.ActionName.CustomAction,
|
|
@@ -48,6 +70,7 @@ var HoverCardResolvedView = function HoverCardResolvedView(_ref) {
|
|
|
48
70
|
onActionClick = _ref.onActionClick,
|
|
49
71
|
extensionKey = _ref.extensionKey;
|
|
50
72
|
var showActionableElement = (0, _linkProvider.useFeatureFlag)('enableActionableElement');
|
|
73
|
+
var enableImprovedPreviewAction = (0, _linkProvider.useFeatureFlag)('enableImprovedPreviewAction');
|
|
51
74
|
(0, _react.useEffect)(function () {
|
|
52
75
|
// Since this hover view is only rendered on resolved status,
|
|
53
76
|
// there is no need to check for statuses.
|
|
@@ -57,8 +80,8 @@ var HoverCardResolvedView = function HoverCardResolvedView(_ref) {
|
|
|
57
80
|
});
|
|
58
81
|
}, [analytics.ui, cardState.status]);
|
|
59
82
|
var footerActions = (0, _react.useMemo)(function () {
|
|
60
|
-
return toFooterActions(cardActions, onActionClick);
|
|
61
|
-
}, [cardActions, onActionClick]);
|
|
83
|
+
return toFooterActions(cardActions, onActionClick, Boolean(enableImprovedPreviewAction));
|
|
84
|
+
}, [cardActions, onActionClick, enableImprovedPreviewAction]);
|
|
62
85
|
var data = (_cardState$details = cardState.details) === null || _cardState$details === void 0 ? void 0 : _cardState$details.data;
|
|
63
86
|
var _useMemo = (0, _react.useMemo)(function () {
|
|
64
87
|
var types = data ? (0, _extractors.extractType)(data) : undefined;
|
|
@@ -21,7 +21,7 @@ const extractBlockIcon = jsonLd => {
|
|
|
21
21
|
}
|
|
22
22
|
};
|
|
23
23
|
const extractBlockDetails = jsonLd => [extractCommentCount(jsonLd), extractProgrammingLanguage(jsonLd), extractSubscriberCount(jsonLd), extractAttachmentCount(jsonLd)].filter(detail => !!detail);
|
|
24
|
-
export const extractBlockActions = (props, jsonLd, opts, platform, meta) => {
|
|
24
|
+
export const extractBlockActions = (props, jsonLd, opts, platform, meta, enableImprovedPreviewAction) => {
|
|
25
25
|
if (opts) {
|
|
26
26
|
const {
|
|
27
27
|
handleInvoke
|
|
@@ -32,7 +32,8 @@ export const extractBlockActions = (props, jsonLd, opts, platform, meta) => {
|
|
|
32
32
|
viewProps: props,
|
|
33
33
|
jsonLd,
|
|
34
34
|
platform,
|
|
35
|
-
meta
|
|
35
|
+
meta,
|
|
36
|
+
enableImprovedPreviewAction
|
|
36
37
|
});
|
|
37
38
|
|
|
38
39
|
// The previewAction should always be the last action
|
|
@@ -63,7 +64,7 @@ export const extractBlockUsers = jsonLd => {
|
|
|
63
64
|
return updatedByMembers || createdByMembers;
|
|
64
65
|
}
|
|
65
66
|
};
|
|
66
|
-
export const extractBlockProps = (jsonLd, meta, opts, renderers, platform) => {
|
|
67
|
+
export const extractBlockProps = (jsonLd, meta, opts, renderers, platform, enableImprovedPreviewAction) => {
|
|
67
68
|
const props = {
|
|
68
69
|
link: extractLink(jsonLd),
|
|
69
70
|
title: extractTitle(jsonLd),
|
|
@@ -80,6 +81,6 @@ export const extractBlockProps = (jsonLd, meta, opts, renderers, platform) => {
|
|
|
80
81
|
};
|
|
81
82
|
return {
|
|
82
83
|
...props,
|
|
83
|
-
actions: extractBlockActions(props, jsonLd, opts, platform, meta)
|
|
84
|
+
actions: extractBlockActions(props, jsonLd, opts, platform, meta, enableImprovedPreviewAction)
|
|
84
85
|
};
|
|
85
86
|
};
|
|
@@ -46,7 +46,8 @@ export const extractPreviewAction = ({
|
|
|
46
46
|
origin,
|
|
47
47
|
source = 'block',
|
|
48
48
|
analytics,
|
|
49
|
-
meta
|
|
49
|
+
meta,
|
|
50
|
+
enableImprovedPreviewAction
|
|
50
51
|
}) => {
|
|
51
52
|
// Extract metadata from view props & raw JSON-LD.
|
|
52
53
|
const metadataFromJsonLd = getMetadataFromJsonLd(jsonLd, platform);
|
|
@@ -70,7 +71,8 @@ export const extractPreviewAction = ({
|
|
|
70
71
|
onViewActionClick: () => {
|
|
71
72
|
handleInvoke(getInvokeOpts(key, 'ViewAction'));
|
|
72
73
|
},
|
|
73
|
-
isSupportTheming: extractIsSupportTheming(meta)
|
|
74
|
+
isSupportTheming: extractIsSupportTheming(meta),
|
|
75
|
+
enableImprovedPreviewAction
|
|
74
76
|
});
|
|
75
77
|
// Setup props to go through proper Redux 'invocation' flow
|
|
76
78
|
// for analytics, further state management if required in future.
|
package/dist/es2019/messages.js
CHANGED
|
@@ -215,6 +215,12 @@ export const messages = defineMessages({
|
|
|
215
215
|
defaultMessage: 'Owned by {context}',
|
|
216
216
|
description: 'Indicates the person or entity that owns or maintains the resource.'
|
|
217
217
|
},
|
|
218
|
+
// Move this to preview once FF has been merged
|
|
219
|
+
preview_improved: {
|
|
220
|
+
id: 'fabric.linking.preview_improved',
|
|
221
|
+
defaultMessage: 'Open preview',
|
|
222
|
+
description: 'Click to view a richer view of your content, without needing to navigate to it.'
|
|
223
|
+
},
|
|
218
224
|
preview: {
|
|
219
225
|
id: 'fabric.linking.preview',
|
|
220
226
|
defaultMessage: 'Full screen view',
|
|
@@ -16,14 +16,21 @@ export const useSmartCardActions = (id, url, analytics) => {
|
|
|
16
16
|
getState,
|
|
17
17
|
dispatch
|
|
18
18
|
} = store;
|
|
19
|
-
const {
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
19
|
+
const getSmartLinkState = useCallback(() => {
|
|
20
|
+
var _getState$url;
|
|
21
|
+
const {
|
|
22
|
+
details,
|
|
23
|
+
status,
|
|
24
|
+
metadataStatus
|
|
25
|
+
} = (_getState$url = getState()[url]) !== null && _getState$url !== void 0 ? _getState$url : {
|
|
26
|
+
status: SmartLinkStatus.Pending
|
|
27
|
+
};
|
|
28
|
+
return {
|
|
29
|
+
details,
|
|
30
|
+
status,
|
|
31
|
+
metadataStatus
|
|
32
|
+
};
|
|
33
|
+
}, [getState, url]);
|
|
27
34
|
const setMetadataStatus = useCallback(metadataStatus => {
|
|
28
35
|
dispatch(cardAction(ACTION_UPDATE_METADATA_STATUS, {
|
|
29
36
|
url
|
|
@@ -31,6 +38,9 @@ export const useSmartCardActions = (id, url, analytics) => {
|
|
|
31
38
|
}, [dispatch, url]);
|
|
32
39
|
const resolve = useCallback(async (resourceUrl = url, isReloading = false, isMetadataRequest = false) => resolveUrl(resourceUrl, isReloading, isMetadataRequest, id), [id, resolveUrl, url]);
|
|
33
40
|
const register = useCallback(() => {
|
|
41
|
+
const {
|
|
42
|
+
details
|
|
43
|
+
} = getSmartLinkState();
|
|
34
44
|
if (!details) {
|
|
35
45
|
dispatch(cardAction(ACTION_RESOLVING, {
|
|
36
46
|
url
|
|
@@ -38,23 +48,33 @@ export const useSmartCardActions = (id, url, analytics) => {
|
|
|
38
48
|
setMetadataStatus('pending');
|
|
39
49
|
}
|
|
40
50
|
return resolve();
|
|
41
|
-
}, [
|
|
51
|
+
}, [getSmartLinkState, resolve, dispatch, url, setMetadataStatus]);
|
|
42
52
|
const reload = useCallback(() => {
|
|
53
|
+
const {
|
|
54
|
+
details
|
|
55
|
+
} = getSmartLinkState();
|
|
43
56
|
const definitionId = getDefinitionId(details);
|
|
44
57
|
if (definitionId) {
|
|
45
58
|
getByDefinitionId(definitionId, getState()).map(url => resolve(url, true));
|
|
46
59
|
} else {
|
|
47
60
|
resolve(url, true);
|
|
48
61
|
}
|
|
49
|
-
}, [
|
|
62
|
+
}, [getSmartLinkState, url, getState, resolve]);
|
|
50
63
|
const loadMetadata = useCallback(() => {
|
|
64
|
+
const {
|
|
65
|
+
metadataStatus
|
|
66
|
+
} = getSmartLinkState();
|
|
51
67
|
//metadataStatus will be undefined for SSR links only
|
|
52
68
|
if (metadataStatus === undefined) {
|
|
53
69
|
setMetadataStatus('pending');
|
|
54
70
|
return resolve(url, false, true);
|
|
55
71
|
}
|
|
56
|
-
}, [
|
|
72
|
+
}, [getSmartLinkState, resolve, setMetadataStatus, url]);
|
|
57
73
|
const authorize = useCallback(appearance => {
|
|
74
|
+
const {
|
|
75
|
+
details,
|
|
76
|
+
status
|
|
77
|
+
} = getSmartLinkState();
|
|
58
78
|
const definitionId = getDefinitionId(details);
|
|
59
79
|
const extensionKey = getExtensionKey(details);
|
|
60
80
|
const services = getServices(details);
|
|
@@ -106,7 +126,7 @@ export const useSmartCardActions = (id, url, analytics) => {
|
|
|
106
126
|
reload();
|
|
107
127
|
});
|
|
108
128
|
}
|
|
109
|
-
}, [analytics.ui, analytics.screen, analytics.track, analytics.operational, id, reload
|
|
129
|
+
}, [getSmartLinkState, analytics.ui, analytics.screen, analytics.track, analytics.operational, id, reload]);
|
|
110
130
|
const invoke = useCallback(async (opts, appearance) => {
|
|
111
131
|
const {
|
|
112
132
|
key,
|
|
@@ -1,33 +1,14 @@
|
|
|
1
1
|
import { useCallback } from 'react';
|
|
2
2
|
import { useSmartLinkClientExtension } from '@atlaskit/link-client-extension';
|
|
3
3
|
import { useSmartLinkContext } from '@atlaskit/link-provider';
|
|
4
|
-
const useInvoke = ({
|
|
5
|
-
failed,
|
|
6
|
-
started,
|
|
7
|
-
success
|
|
8
|
-
} = {}) => {
|
|
4
|
+
const useInvoke = () => {
|
|
9
5
|
const {
|
|
10
6
|
connections
|
|
11
7
|
} = useSmartLinkContext();
|
|
12
8
|
const clientExt = useSmartLinkClientExtension(connections.client);
|
|
13
9
|
return useCallback(async (req, cb) => {
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
started && started({
|
|
18
|
-
smartLinkActionType
|
|
19
|
-
});
|
|
20
|
-
const response = await clientExt.invoke(req);
|
|
21
|
-
success && success({
|
|
22
|
-
smartLinkActionType
|
|
23
|
-
});
|
|
24
|
-
return cb ? cb(response) : response;
|
|
25
|
-
} catch (err) {
|
|
26
|
-
failed && failed({
|
|
27
|
-
smartLinkActionType
|
|
28
|
-
});
|
|
29
|
-
throw err;
|
|
30
|
-
}
|
|
31
|
-
}, [clientExt, failed, started, success]);
|
|
10
|
+
const response = await clientExt.invoke(req);
|
|
11
|
+
return cb ? cb(response) : response;
|
|
12
|
+
}, [clientExt]);
|
|
32
13
|
};
|
|
33
14
|
export default useInvoke;
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import { useCallback } from 'react';
|
|
2
|
+
import { unstable_batchedUpdates } from 'react-dom';
|
|
2
3
|
import { addMetadataToExperience } from '../../analytics';
|
|
3
4
|
import { getStatus } from '../../helpers';
|
|
4
5
|
import { ACTION_ERROR, ACTION_ERROR_FALLBACK, ACTION_RELOADING, ACTION_RESOLVED, ACTION_UPDATE_METADATA_STATUS, APIError, cardAction } from '@atlaskit/linking-common';
|
|
6
|
+
import { getBooleanFF } from '@atlaskit/platform-feature-flags';
|
|
5
7
|
import { ERROR_MESSAGE_FATAL, ERROR_MESSAGE_METADATA, ERROR_MESSAGE_OAUTH } from '../../actions/constants';
|
|
6
8
|
import { getUnauthorizedJsonLd } from '../../../utils/jsonld';
|
|
7
9
|
import { SmartLinkStatus } from '../../../constants';
|
|
@@ -75,6 +77,20 @@ const useResolve = () => {
|
|
|
75
77
|
}
|
|
76
78
|
}
|
|
77
79
|
}, [getState, setMetadataStatus, dispatch]);
|
|
80
|
+
const handleResolvedLinkSuccess = useCallback((resourceUrl, response, isReloading, isMetadataRequest) => {
|
|
81
|
+
//if a link resolves normally, metadata will also always be resolved
|
|
82
|
+
setMetadataStatus(resourceUrl, 'resolved');
|
|
83
|
+
// Dispatch Analytics and resolved card action - including unauthorized states.
|
|
84
|
+
if (isReloading) {
|
|
85
|
+
dispatch(cardAction(ACTION_RELOADING, {
|
|
86
|
+
url: resourceUrl
|
|
87
|
+
}, response));
|
|
88
|
+
} else {
|
|
89
|
+
dispatch(cardAction(ACTION_RESOLVED, {
|
|
90
|
+
url: resourceUrl
|
|
91
|
+
}, response, undefined, undefined, isMetadataRequest));
|
|
92
|
+
}
|
|
93
|
+
}, [setMetadataStatus, dispatch]);
|
|
78
94
|
const handleResolvedLinkResponse = useCallback((resourceUrl, response, isReloading = false, isMetadataRequest) => {
|
|
79
95
|
const hostname = new URL(resourceUrl).hostname;
|
|
80
96
|
const nextStatus = response ? getStatus(response) : 'fatal';
|
|
@@ -97,20 +113,20 @@ const useResolve = () => {
|
|
|
97
113
|
handleResolvedLinkError(resourceUrl, new APIError('error', hostname, ERROR_MESSAGE_METADATA), response, isMetadataRequest);
|
|
98
114
|
return;
|
|
99
115
|
}
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
116
|
+
if (getBooleanFF('platform.linking-platform.smart-card.enable-analytics-context')) {
|
|
117
|
+
/**
|
|
118
|
+
* Using unstable_batchedUpdates because this store update happens async and trigers a rerender
|
|
119
|
+
* more info:
|
|
120
|
+
* https://github.com/facebook/react/blob/v18.2.0/packages/use-sync-external-store/src/useSyncExternalStoreShimClient.js#L113
|
|
121
|
+
* https://react-redux.js.org/api/batch
|
|
122
|
+
*/
|
|
123
|
+
unstable_batchedUpdates(() => {
|
|
124
|
+
handleResolvedLinkSuccess(resourceUrl, response, isReloading, isMetadataRequest);
|
|
125
|
+
});
|
|
108
126
|
} else {
|
|
109
|
-
|
|
110
|
-
url: resourceUrl
|
|
111
|
-
}, response, undefined, undefined, isMetadataRequest));
|
|
127
|
+
handleResolvedLinkSuccess(resourceUrl, response, isReloading, isMetadataRequest);
|
|
112
128
|
}
|
|
113
|
-
}, [
|
|
129
|
+
}, [handleResolvedLinkError, handleResolvedLinkSuccess, hasAuthFlowSupported]);
|
|
114
130
|
return useCallback(async (url, isReloading = false, isMetadataRequest = false, id = '') => {
|
|
115
131
|
const {
|
|
116
132
|
details
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import React, { useMemo } from 'react';
|
|
2
|
+
import { AnalyticsContext } from '@atlaskit/analytics-next';
|
|
3
|
+
import { getResolvedAttributes, getUrlAttributes } from '@atlaskit/link-analytics/resolved-attributes';
|
|
4
|
+
import { isFlexibleUiCard } from '../flexible';
|
|
5
|
+
import { CardDisplay } from '../../constants';
|
|
6
|
+
import { useSmartCardState as useSmartLinkState } from '../../state/store';
|
|
7
|
+
export const SmartLinkAnalyticsContext = ({
|
|
8
|
+
children,
|
|
9
|
+
url,
|
|
10
|
+
appearance,
|
|
11
|
+
id
|
|
12
|
+
}) => {
|
|
13
|
+
const {
|
|
14
|
+
details,
|
|
15
|
+
status
|
|
16
|
+
} = useSmartLinkState(url);
|
|
17
|
+
const resolvedAttributes = getResolvedAttributes({
|
|
18
|
+
url
|
|
19
|
+
}, details, status);
|
|
20
|
+
const {
|
|
21
|
+
urlHash
|
|
22
|
+
} = getUrlAttributes(url);
|
|
23
|
+
const isFlexibleUi = useMemo(() => isFlexibleUiCard(children), [children]);
|
|
24
|
+
const display = isFlexibleUi ? CardDisplay.Flexible : appearance;
|
|
25
|
+
return /*#__PURE__*/React.createElement(AnalyticsContext, {
|
|
26
|
+
data: {
|
|
27
|
+
attributes: {
|
|
28
|
+
...resolvedAttributes,
|
|
29
|
+
urlHash,
|
|
30
|
+
display,
|
|
31
|
+
id
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
}, children);
|
|
35
|
+
};
|
|
@@ -6,6 +6,16 @@ export const context = {
|
|
|
6
6
|
packageName,
|
|
7
7
|
packageVersion
|
|
8
8
|
};
|
|
9
|
+
export let TrackQuickActionType = /*#__PURE__*/function (TrackQuickActionType) {
|
|
10
|
+
TrackQuickActionType["StatusUpdate"] = "StatusUpdate";
|
|
11
|
+
return TrackQuickActionType;
|
|
12
|
+
}({});
|
|
13
|
+
export let TrackQuickActionFailureReason = /*#__PURE__*/function (TrackQuickActionFailureReason) {
|
|
14
|
+
TrackQuickActionFailureReason["PermissionError"] = "PermissionError";
|
|
15
|
+
TrackQuickActionFailureReason["ValidationError"] = "ValidationError";
|
|
16
|
+
TrackQuickActionFailureReason["UnknownError"] = "UnknownError";
|
|
17
|
+
return TrackQuickActionFailureReason;
|
|
18
|
+
}({});
|
|
9
19
|
const uiActionSubjectIds = {
|
|
10
20
|
DownloadAction: 'downloadDocument',
|
|
11
21
|
PreviewAction: 'invokePreviewScreen',
|
package/dist/es2019/version.json
CHANGED