@atlaskit/smart-card 32.5.1 → 32.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 +18 -0
- package/analytics.spec.yaml +163 -0
- package/dist/cjs/state/actions/index.js +53 -49
- package/dist/cjs/state/analytics/useSmartLinkAnalytics.js +14 -128
- package/dist/cjs/utils/analytics/analytics.js +150 -234
- package/dist/cjs/utils/analytics/index.js +1 -89
- package/dist/cjs/view/CardWithUrl/component.js +37 -40
- package/dist/cjs/view/CardWithUrl/loader.js +7 -16
- package/dist/cjs/view/EmbedCard/index.js +19 -44
- package/dist/cjs/view/FlexibleCard/components/actions/action/server-action/index.js +12 -3
- package/dist/cjs/view/FlexibleCard/components/elements/lozenge/lozenge-action/index.js +11 -2
- package/dist/cjs/view/FlexibleCard/components/elements/lozenge/lozenge-action/lozenge-action-error/index.js +10 -2
- package/dist/cjs/view/HoverCard/components/HoverCardContent.js +64 -20
- package/dist/cjs/view/LinkUrl/index.js +1 -1
- package/dist/cjs/view/common/Metadata.js +1 -1
- package/dist/cjs/view/common/UnauthorisedViewContent.js +10 -2
- package/dist/es2019/state/actions/index.js +53 -49
- package/dist/es2019/state/analytics/useSmartLinkAnalytics.js +15 -136
- package/dist/es2019/utils/analytics/analytics.js +43 -133
- package/dist/es2019/utils/analytics/index.js +1 -61
- package/dist/es2019/view/CardWithUrl/component.js +37 -40
- package/dist/es2019/view/CardWithUrl/loader.js +7 -16
- package/dist/es2019/view/EmbedCard/index.js +20 -45
- package/dist/es2019/view/FlexibleCard/components/actions/action/server-action/index.js +12 -3
- package/dist/es2019/view/FlexibleCard/components/elements/lozenge/lozenge-action/index.js +11 -2
- package/dist/es2019/view/FlexibleCard/components/elements/lozenge/lozenge-action/lozenge-action-error/index.js +11 -2
- package/dist/es2019/view/HoverCard/components/HoverCardContent.js +63 -20
- package/dist/es2019/view/LinkUrl/index.js +1 -1
- package/dist/es2019/view/common/Metadata.js +1 -1
- package/dist/es2019/view/common/UnauthorisedViewContent.js +11 -2
- package/dist/esm/state/actions/index.js +53 -49
- package/dist/esm/state/analytics/useSmartLinkAnalytics.js +15 -129
- package/dist/esm/utils/analytics/analytics.js +149 -233
- package/dist/esm/utils/analytics/index.js +1 -59
- package/dist/esm/view/CardWithUrl/component.js +37 -40
- package/dist/esm/view/CardWithUrl/loader.js +7 -16
- package/dist/esm/view/EmbedCard/index.js +19 -44
- package/dist/esm/view/FlexibleCard/components/actions/action/server-action/index.js +12 -3
- package/dist/esm/view/FlexibleCard/components/elements/lozenge/lozenge-action/index.js +11 -2
- package/dist/esm/view/FlexibleCard/components/elements/lozenge/lozenge-action/lozenge-action-error/index.js +10 -2
- package/dist/esm/view/HoverCard/components/HoverCardContent.js +65 -21
- package/dist/esm/view/LinkUrl/index.js +1 -1
- package/dist/esm/view/common/Metadata.js +1 -1
- package/dist/esm/view/common/UnauthorisedViewContent.js +10 -2
- package/dist/types/common/analytics/generated/analytics.types.d.ts +83 -1
- package/dist/types/state/analytics/useSmartLinkAnalytics.d.ts +15 -38
- package/dist/types/state/hooks/useSmartLink.d.ts +0 -4
- package/dist/types/utils/analytics/analytics.d.ts +32 -16
- package/dist/types/utils/analytics/index.d.ts +1 -7
- package/dist/types/utils/analytics/types.d.ts +22 -22
- package/dist/types/utils/mocks.d.ts +0 -4
- package/dist/types-ts4.5/common/analytics/generated/analytics.types.d.ts +83 -1
- package/dist/types-ts4.5/state/analytics/useSmartLinkAnalytics.d.ts +15 -38
- package/dist/types-ts4.5/state/hooks/useSmartLink.d.ts +0 -4
- package/dist/types-ts4.5/utils/analytics/analytics.d.ts +32 -16
- package/dist/types-ts4.5/utils/analytics/index.d.ts +1 -7
- package/dist/types-ts4.5/utils/analytics/types.d.ts +22 -22
- package/dist/types-ts4.5/utils/mocks.d.ts +0 -4
- package/package.json +12 -15
|
@@ -84,16 +84,25 @@ function Component(_ref) {
|
|
|
84
84
|
// Setup UI handlers.
|
|
85
85
|
var handleClickWrapper = (0, _react.useCallback)(function (event) {
|
|
86
86
|
var isModifierKeyPressed = (0, _utils.isSpecialEvent)(event);
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
87
|
+
if ((0, _platformFeatureFlags.fg)('platform_migrate-some-ui-events-smart-card')) {
|
|
88
|
+
fireEvent('ui.smartLink.clicked', {
|
|
89
|
+
id: id,
|
|
90
|
+
display: isFlexibleUi ? _constants.CardDisplay.Flexible : appearance,
|
|
91
|
+
definitionId: definitionId !== null && definitionId !== void 0 ? definitionId : null,
|
|
92
|
+
isModifierKeyPressed: isModifierKeyPressed
|
|
93
|
+
});
|
|
94
|
+
} else {
|
|
95
|
+
analytics.ui.cardClickedEvent({
|
|
96
|
+
id: id,
|
|
97
|
+
display: isFlexibleUi ? _constants.CardDisplay.Flexible : appearance,
|
|
98
|
+
status: state.status,
|
|
99
|
+
definitionId: definitionId,
|
|
100
|
+
extensionKey: extensionKey,
|
|
101
|
+
isModifierKeyPressed: isModifierKeyPressed,
|
|
102
|
+
destinationProduct: product,
|
|
103
|
+
destinationSubproduct: subproduct
|
|
104
|
+
});
|
|
105
|
+
}
|
|
97
106
|
if (!onClick && !isFlexibleUi) {
|
|
98
107
|
var clickUrl = (0, _helpers.getClickUrl)(url, state.details);
|
|
99
108
|
// Ctrl+left click on mac typically doesn't trigger onClick
|
|
@@ -113,7 +122,7 @@ function Component(_ref) {
|
|
|
113
122
|
}
|
|
114
123
|
(0, _click.fireLinkClickedEvent)(createAnalyticsEvent)(event);
|
|
115
124
|
}
|
|
116
|
-
}, [id, url, state.details, state.status, analytics.ui, appearance, definitionId, extensionKey, onClick, isFlexibleUi, product, subproduct, createAnalyticsEvent]);
|
|
125
|
+
}, [id, url, state.details, state.status, analytics.ui, appearance, definitionId, extensionKey, onClick, isFlexibleUi, product, subproduct, createAnalyticsEvent, fireEvent]);
|
|
117
126
|
var handleAuthorize = (0, _react.useCallback)(function () {
|
|
118
127
|
return actions.authorize(appearance);
|
|
119
128
|
}, [actions, appearance]);
|
|
@@ -129,39 +138,27 @@ function Component(_ref) {
|
|
|
129
138
|
(0, _react.useEffect)(function () {
|
|
130
139
|
measure.mark(id, state.status);
|
|
131
140
|
if (state.status !== 'pending' && state.status !== 'resolving') {
|
|
141
|
+
var _state$error;
|
|
132
142
|
measure.create(id, state.status);
|
|
133
|
-
if (
|
|
134
|
-
var
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
type: state.error.type
|
|
149
|
-
}
|
|
150
|
-
});
|
|
151
|
-
}
|
|
152
|
-
} else {
|
|
153
|
-
var _state$error2;
|
|
154
|
-
analytics.operational.instrument({
|
|
155
|
-
id: id,
|
|
156
|
-
status: state.status,
|
|
157
|
-
definitionId: definitionId,
|
|
158
|
-
extensionKey: extensionKey !== null && extensionKey !== void 0 ? extensionKey : (_state$error2 = state.error) === null || _state$error2 === void 0 ? void 0 : _state$error2.extensionKey,
|
|
159
|
-
resourceType: resourceType,
|
|
160
|
-
error: state.error
|
|
143
|
+
if (state.status === 'resolved') {
|
|
144
|
+
var _measure$getMeasure$d, _measure$getMeasure;
|
|
145
|
+
fireEvent('operational.smartLink.resolved', {
|
|
146
|
+
definitionId: definitionId !== null && definitionId !== void 0 ? definitionId : null,
|
|
147
|
+
duration: (_measure$getMeasure$d = (_measure$getMeasure = measure.getMeasure(id, state.status)) === null || _measure$getMeasure === void 0 ? void 0 : _measure$getMeasure.duration) !== null && _measure$getMeasure$d !== void 0 ? _measure$getMeasure$d : null
|
|
148
|
+
});
|
|
149
|
+
} else if (((_state$error = state.error) === null || _state$error === void 0 ? void 0 : _state$error.type) !== 'ResolveUnsupportedError') {
|
|
150
|
+
fireEvent('operational.smartLink.unresolved', {
|
|
151
|
+
definitionId: definitionId !== null && definitionId !== void 0 ? definitionId : null,
|
|
152
|
+
reason: state.status,
|
|
153
|
+
error: state.error === undefined ? null : {
|
|
154
|
+
name: state.error.name,
|
|
155
|
+
kind: state.error.kind,
|
|
156
|
+
type: state.error.type
|
|
157
|
+
}
|
|
161
158
|
});
|
|
162
159
|
}
|
|
163
160
|
}
|
|
164
|
-
}, [id, appearance, state.status, state.error, definitionId, extensionKey, resourceType,
|
|
161
|
+
}, [id, appearance, state.status, state.error, definitionId, extensionKey, resourceType, fireEvent]);
|
|
165
162
|
|
|
166
163
|
// NB: once the smart-card has rendered into an end state, we capture
|
|
167
164
|
// this as a successful render. These can be one of:
|
|
@@ -12,7 +12,6 @@ var _react = _interopRequireWildcard(require("react"));
|
|
|
12
12
|
var _reactErrorBoundary = require("react-error-boundary");
|
|
13
13
|
var _reactMagneticDi = require("react-magnetic-di");
|
|
14
14
|
var _uuid = _interopRequireDefault(require("uuid"));
|
|
15
|
-
var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
|
|
16
15
|
var _useAnalyticsEvents2 = require("../../common/analytics/generated/use-analytics-events");
|
|
17
16
|
var _analytics = require("../../state/analytics");
|
|
18
17
|
var _utils = require("../../utils");
|
|
@@ -82,20 +81,12 @@ function CardWithURLRenderer(props) {
|
|
|
82
81
|
// to the reliability of the smart-card front-end components.
|
|
83
82
|
// Likewise, chunk loading errors are not caused by a failure of smart-card rendering.
|
|
84
83
|
if (error.name === 'ChunkLoadError') {
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
});
|
|
92
|
-
} else {
|
|
93
|
-
analytics.operational.chunkloadFailedEvent({
|
|
94
|
-
display: appearance,
|
|
95
|
-
error: error,
|
|
96
|
-
errorInfo: errorInfo
|
|
97
|
-
});
|
|
98
|
-
}
|
|
84
|
+
fireEvent('operational.smartLink.chunkLoadFailed', {
|
|
85
|
+
display: appearance,
|
|
86
|
+
error: error,
|
|
87
|
+
errorInfo: errorInfo,
|
|
88
|
+
definitionId: null
|
|
89
|
+
});
|
|
99
90
|
} else if (error.name !== 'APIError') {
|
|
100
91
|
analytics.ui.renderFailedEvent({
|
|
101
92
|
display: isFlexibleUi ? 'flexible' : appearance,
|
|
@@ -109,7 +100,7 @@ function CardWithURLRenderer(props) {
|
|
|
109
100
|
url: url !== null && url !== void 0 ? url : '',
|
|
110
101
|
err: error
|
|
111
102
|
});
|
|
112
|
-
}, [analytics.
|
|
103
|
+
}, [analytics.ui, appearance, id, onError, url, isFlexibleUi, fireEvent]);
|
|
113
104
|
if (!url) {
|
|
114
105
|
throw new Error('@atlaskit/smart-card: url property is missing.');
|
|
115
106
|
}
|
|
@@ -8,14 +8,11 @@ exports.EmbedCard = void 0;
|
|
|
8
8
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
9
9
|
var _react = _interopRequireDefault(require("react"));
|
|
10
10
|
var _analyticsNext = require("@atlaskit/analytics-next");
|
|
11
|
-
var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
|
|
12
|
-
var _block = require("../../extractors/block");
|
|
13
11
|
var _extractAccessContext = require("../../extractors/common/context/extractAccessContext");
|
|
14
12
|
var _embed = require("../../extractors/embed");
|
|
15
13
|
var _inline = require("../../extractors/inline");
|
|
16
14
|
var _helpers = require("../../state/helpers");
|
|
17
15
|
var _jsonld = require("../../utils/jsonld");
|
|
18
|
-
var _BlockCard = require("../BlockCard");
|
|
19
16
|
var _FlexibleResolvedView = _interopRequireDefault(require("../BlockCard/views/flexible/FlexibleResolvedView"));
|
|
20
17
|
var _ResolvedView = require("../InlineCard/ResolvedView");
|
|
21
18
|
var _ErroredView = require("./views/ErroredView");
|
|
@@ -31,7 +28,6 @@ var EmbedCard = exports.EmbedCard = /*#__PURE__*/_react.default.forwardRef(funct
|
|
|
31
28
|
handleErrorRetry = _ref.handleErrorRetry,
|
|
32
29
|
handleFrameClick = _ref.handleFrameClick,
|
|
33
30
|
analytics = _ref.analytics,
|
|
34
|
-
handleInvoke = _ref.handleInvoke,
|
|
35
31
|
isSelected = _ref.isSelected,
|
|
36
32
|
frameStyle = _ref.frameStyle,
|
|
37
33
|
platform = _ref.platform,
|
|
@@ -55,23 +51,16 @@ var EmbedCard = exports.EmbedCard = /*#__PURE__*/_react.default.forwardRef(funct
|
|
|
55
51
|
switch (status) {
|
|
56
52
|
case 'pending':
|
|
57
53
|
case 'resolving':
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
testId: testId
|
|
69
|
-
});
|
|
70
|
-
}
|
|
71
|
-
return /*#__PURE__*/_react.default.createElement(_BlockCard.BlockCardResolvingView, {
|
|
72
|
-
testId: "embed-card-resolving-view",
|
|
73
|
-
inheritDimensions: inheritDimensions,
|
|
74
|
-
isSelected: isSelected
|
|
54
|
+
return /*#__PURE__*/_react.default.createElement(_FlexibleResolvedView.default, {
|
|
55
|
+
url: url,
|
|
56
|
+
cardState: cardState,
|
|
57
|
+
onClick: handleFrameClick,
|
|
58
|
+
onError: onError,
|
|
59
|
+
onResolve: onResolve,
|
|
60
|
+
renderers: renderers,
|
|
61
|
+
actionOptions: actionOptions,
|
|
62
|
+
analytics: analytics,
|
|
63
|
+
testId: testId ? "".concat(testId, "-resolving-view") : 'embed-card-resolving-view'
|
|
75
64
|
});
|
|
76
65
|
case 'resolved':
|
|
77
66
|
var resolvedViewProps = (0, _embed.extractEmbedProps)(data, meta, platform, iframeUrlType);
|
|
@@ -103,31 +92,17 @@ var EmbedCard = exports.EmbedCard = /*#__PURE__*/_react.default.forwardRef(funct
|
|
|
103
92
|
onClick: handleFrameClick
|
|
104
93
|
}));
|
|
105
94
|
}
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
actionOptions: actionOptions,
|
|
115
|
-
analytics: analytics,
|
|
116
|
-
testId: testId
|
|
117
|
-
});
|
|
118
|
-
}
|
|
119
|
-
var resolvedBlockViewProps = (0, _block.extractBlockProps)(data, meta, {
|
|
95
|
+
return /*#__PURE__*/_react.default.createElement(_FlexibleResolvedView.default, {
|
|
96
|
+
url: url,
|
|
97
|
+
cardState: cardState,
|
|
98
|
+
onClick: handleFrameClick,
|
|
99
|
+
onError: onError,
|
|
100
|
+
onResolve: onResolve,
|
|
101
|
+
renderers: renderers,
|
|
102
|
+
actionOptions: actionOptions,
|
|
120
103
|
analytics: analytics,
|
|
121
|
-
|
|
122
|
-
handleInvoke: handleInvoke,
|
|
123
|
-
extensionKey: extensionKey,
|
|
124
|
-
actionOptions: actionOptions
|
|
104
|
+
testId: testId
|
|
125
105
|
});
|
|
126
|
-
return /*#__PURE__*/_react.default.createElement(_BlockCard.BlockCardResolvedView, (0, _extends2.default)({}, resolvedBlockViewProps, {
|
|
127
|
-
isSelected: isSelected,
|
|
128
|
-
testId: testId,
|
|
129
|
-
onClick: handleFrameClick
|
|
130
|
-
}));
|
|
131
106
|
}
|
|
132
107
|
case 'unauthorized':
|
|
133
108
|
if (onError) {
|
|
@@ -12,6 +12,7 @@ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/
|
|
|
12
12
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
13
13
|
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
|
14
14
|
var _react = _interopRequireWildcard(require("react"));
|
|
15
|
+
var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
|
|
15
16
|
var _useAnalyticsEvents2 = require("../../../../../../common/analytics/generated/use-analytics-events");
|
|
16
17
|
var _flexibleUiContext = require("../../../../../../state/flexible-ui-context");
|
|
17
18
|
var _useInvoke = _interopRequireDefault(require("../../../../../../state/hooks/use-invoke"));
|
|
@@ -48,9 +49,17 @@ var ServerAction = function ServerAction(_ref) {
|
|
|
48
49
|
smartLinkActionType = (_action$action = action.action) === null || _action$action === void 0 ? void 0 : _action$action.actionType;
|
|
49
50
|
_context.prev = 2;
|
|
50
51
|
setIsLoading(true);
|
|
51
|
-
|
|
52
|
-
smartLinkActionType
|
|
53
|
-
|
|
52
|
+
if ((0, _platformFeatureFlags.fg)('platform_migrate-some-ui-events-smart-card')) {
|
|
53
|
+
if (smartLinkActionType === 'FollowEntityAction' || smartLinkActionType === 'UnfollowEntityAction') {
|
|
54
|
+
fireEvent('ui.button.clicked.smartLinkFollowButton', {});
|
|
55
|
+
} else {
|
|
56
|
+
fireEvent("ui.button.clicked.".concat(smartLinkActionType), {});
|
|
57
|
+
}
|
|
58
|
+
} else {
|
|
59
|
+
analytics === null || analytics === void 0 || analytics.ui.smartLinkServerActionClickedEvent({
|
|
60
|
+
smartLinkActionType: smartLinkActionType
|
|
61
|
+
});
|
|
62
|
+
}
|
|
54
63
|
fireEvent('track.smartLinkQuickAction.started', {
|
|
55
64
|
smartLinkActionType: smartLinkActionType
|
|
56
65
|
});
|
|
@@ -12,6 +12,7 @@ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/sli
|
|
|
12
12
|
var _react = require("react");
|
|
13
13
|
var _react2 = require("@emotion/react");
|
|
14
14
|
var _dropdownMenu = _interopRequireDefault(require("@atlaskit/dropdown-menu"));
|
|
15
|
+
var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
|
|
15
16
|
var _useAnalyticsEvents2 = require("../../../../../../common/analytics/generated/use-analytics-events");
|
|
16
17
|
var _extractLozengeActionItems = _interopRequireDefault(require("../../../../../../extractors/action/extract-lozenge-action-items"));
|
|
17
18
|
var _flexibleUiContext = require("../../../../../../state/flexible-ui-context");
|
|
@@ -102,7 +103,11 @@ var LozengeAction = function LozengeAction(_ref) {
|
|
|
102
103
|
_context.next = 24;
|
|
103
104
|
break;
|
|
104
105
|
}
|
|
105
|
-
|
|
106
|
+
if ((0, _platformFeatureFlags.fg)('platform_migrate-some-ui-events-smart-card')) {
|
|
107
|
+
fireEvent('ui.button.clicked.smartLinkStatusLozenge', {});
|
|
108
|
+
} else {
|
|
109
|
+
analytics === null || analytics === void 0 || analytics.ui.smartLinkLozengeActionClickedEvent();
|
|
110
|
+
}
|
|
106
111
|
fireEvent('track.smartLinkQuickAction.started', {
|
|
107
112
|
smartLinkActionType: _analytics.TrackQuickActionType.StatusUpdate
|
|
108
113
|
});
|
|
@@ -165,7 +170,11 @@ var LozengeAction = function LozengeAction(_ref) {
|
|
|
165
170
|
while (1) switch (_context2.prev = _context2.next) {
|
|
166
171
|
case 0:
|
|
167
172
|
_context2.prev = 0;
|
|
168
|
-
|
|
173
|
+
if ((0, _platformFeatureFlags.fg)('platform_migrate-some-ui-events-smart-card')) {
|
|
174
|
+
fireEvent('ui.button.clicked.smartLinkStatusListItem', {});
|
|
175
|
+
} else {
|
|
176
|
+
analytics === null || analytics === void 0 || analytics.ui.smartLinkLozengeActionListItemClickedEvent();
|
|
177
|
+
}
|
|
169
178
|
updateAction = action === null || action === void 0 ? void 0 : action.update;
|
|
170
179
|
if (!(updateAction && id)) {
|
|
171
180
|
_context2.next = 17;
|
|
@@ -11,7 +11,9 @@ var _react2 = require("@emotion/react");
|
|
|
11
11
|
var _reactIntlNext = require("react-intl-next");
|
|
12
12
|
var _dropdownMenu = require("@atlaskit/dropdown-menu");
|
|
13
13
|
var _error = _interopRequireDefault(require("@atlaskit/icon/core/migration/error"));
|
|
14
|
+
var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
|
|
14
15
|
var _colors = require("@atlaskit/theme/colors");
|
|
16
|
+
var _useAnalyticsEvents2 = require("../../../../../../../common/analytics/generated/use-analytics-events");
|
|
15
17
|
var _messages = require("../../../../../../../messages");
|
|
16
18
|
var _flexibleUiContext = require("../../../../../../../state/flexible-ui-context");
|
|
17
19
|
var _useResolve = _interopRequireDefault(require("../../../../../../../state/hooks/use-resolve"));
|
|
@@ -30,6 +32,8 @@ var LozengeActionError = function LozengeActionError(_ref) {
|
|
|
30
32
|
maxLineNumber = _ref$maxLineNumber === void 0 ? MAX_LINE_NUMBER : _ref$maxLineNumber,
|
|
31
33
|
url = _ref.url,
|
|
32
34
|
previewData = _ref.previewData;
|
|
35
|
+
var _useAnalyticsEvents = (0, _useAnalyticsEvents2.useAnalyticsEvents)(),
|
|
36
|
+
fireEvent = _useAnalyticsEvents.fireEvent;
|
|
33
37
|
var reload = (0, _useResolve.default)();
|
|
34
38
|
var analytics = (0, _flexibleUiContext.useFlexibleUiAnalyticsContext)();
|
|
35
39
|
var isPreviewAvailable = previewData && previewData.src !== undefined;
|
|
@@ -40,13 +44,17 @@ var LozengeActionError = function LozengeActionError(_ref) {
|
|
|
40
44
|
}, [reload, url]);
|
|
41
45
|
var handlePreviewOpen = (0, _react.useCallback)(function () {
|
|
42
46
|
if (isPreviewAvailable) {
|
|
43
|
-
|
|
47
|
+
if ((0, _platformFeatureFlags.fg)('platform_migrate-some-ui-events-smart-card')) {
|
|
48
|
+
fireEvent('ui.button.clicked.smartLinkStatusOpenPreview', {});
|
|
49
|
+
} else {
|
|
50
|
+
analytics === null || analytics === void 0 || analytics.ui.smartLinkLozengeActionErrorOpenPreviewClickedEvent();
|
|
51
|
+
}
|
|
44
52
|
return (0, _utils.openEmbedModalWithFlexibleUiIcon)(_objectSpread(_objectSpread({}, previewData), {}, {
|
|
45
53
|
analytics: analytics,
|
|
46
54
|
onClose: handlePreviewClose
|
|
47
55
|
}));
|
|
48
56
|
}
|
|
49
|
-
}, [analytics, handlePreviewClose, isPreviewAvailable, previewData]);
|
|
57
|
+
}, [analytics, handlePreviewClose, isPreviewAvailable, previewData, fireEvent]);
|
|
50
58
|
var content = (0, _react.useMemo)(function () {
|
|
51
59
|
return (0, _react2.jsx)(_react.Fragment, null, (0, _react2.jsx)("div", {
|
|
52
60
|
css: _styled.contentStyles
|
|
@@ -10,6 +10,8 @@ var _react = _interopRequireWildcard(require("react"));
|
|
|
10
10
|
var _react2 = require("@emotion/react");
|
|
11
11
|
var _analyticsNext = require("@atlaskit/analytics-next");
|
|
12
12
|
var _linkProvider = require("@atlaskit/link-provider");
|
|
13
|
+
var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
|
|
14
|
+
var _useAnalyticsEvents2 = require("../../../common/analytics/generated/use-analytics-events");
|
|
13
15
|
var _constants = require("../../../constants");
|
|
14
16
|
var _analytics2 = require("../../../state/analytics");
|
|
15
17
|
var _helpers = require("../../../state/helpers");
|
|
@@ -47,8 +49,10 @@ var HoverCardContent = function HoverCardContent(_ref) {
|
|
|
47
49
|
onMouseEnter = _ref.onMouseEnter,
|
|
48
50
|
onMouseLeave = _ref.onMouseLeave,
|
|
49
51
|
actionOptions = _ref.actionOptions;
|
|
50
|
-
var
|
|
51
|
-
createAnalyticsEvent =
|
|
52
|
+
var _useAnalyticsEventsNe = (0, _analyticsNext.useAnalyticsEvents)(),
|
|
53
|
+
createAnalyticsEvent = _useAnalyticsEventsNe.createAnalyticsEvent;
|
|
54
|
+
var _useAnalyticsEvents = (0, _useAnalyticsEvents2.useAnalyticsEvents)(),
|
|
55
|
+
fireEvent = _useAnalyticsEvents.fireEvent;
|
|
52
56
|
var defaultAnalytics = (0, _analytics2.useSmartLinkAnalytics)(url, id);
|
|
53
57
|
var analytics = _analytics !== null && _analytics !== void 0 ? _analytics : defaultAnalytics;
|
|
54
58
|
var extensionKey = (0, _react.useMemo)(function () {
|
|
@@ -56,12 +60,17 @@ var HoverCardContent = function HoverCardContent(_ref) {
|
|
|
56
60
|
}, [cardState.details]);
|
|
57
61
|
var linkState = (0, _store.useSmartCardState)(url);
|
|
58
62
|
var linkStatus = (_linkState$status = linkState.status) !== null && _linkState$status !== void 0 ? _linkState$status : 'pending';
|
|
63
|
+
var definitionId = (0, _react.useMemo)(function () {
|
|
64
|
+
return (0, _helpers.getDefinitionId)(cardState.details);
|
|
65
|
+
}, [cardState.details]);
|
|
59
66
|
var _useSmartLinkContext = (0, _linkProvider.useSmartLinkContext)(),
|
|
60
67
|
isAdminHubAIEnabled = _useSmartLinkContext.isAdminHubAIEnabled;
|
|
61
68
|
var isAISummaryEnabled = (0, _aiSummary.getIsAISummaryEnabled)(isAdminHubAIEnabled, cardState.details);
|
|
62
69
|
var services = (0, _helpers.getServices)(linkState.details);
|
|
63
70
|
var statusRef = (0, _react.useRef)(linkStatus);
|
|
64
71
|
var analyticsRef = (0, _react.useRef)(analytics);
|
|
72
|
+
var fireEventRef = (0, _react.useRef)(fireEvent);
|
|
73
|
+
var definitionIdRef = (0, _react.useRef)(definitionId);
|
|
65
74
|
(0, _react.useEffect)(function () {
|
|
66
75
|
/**
|
|
67
76
|
* Must access current analytics object value via ref because its not stable
|
|
@@ -73,37 +82,72 @@ var HoverCardContent = function HoverCardContent(_ref) {
|
|
|
73
82
|
if (statusRef.current !== linkStatus) {
|
|
74
83
|
statusRef.current = linkStatus;
|
|
75
84
|
}
|
|
76
|
-
|
|
85
|
+
if (fireEventRef.current !== fireEvent) {
|
|
86
|
+
fireEventRef.current = fireEvent;
|
|
87
|
+
}
|
|
88
|
+
if (definitionIdRef.current !== definitionId) {
|
|
89
|
+
definitionIdRef.current = definitionId;
|
|
90
|
+
}
|
|
91
|
+
}, [analytics, linkStatus, fireEvent, definitionId]);
|
|
77
92
|
(0, _react.useEffect)(function () {
|
|
78
93
|
var previewDisplay = 'card';
|
|
79
94
|
var previewInvokeMethod = 'mouse_hover';
|
|
80
95
|
var cardOpenTime = Date.now();
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
96
|
+
var fireEventCurrent = fireEventRef.current;
|
|
97
|
+
if ((0, _platformFeatureFlags.fg)('platform_migrate-some-ui-events-smart-card')) {
|
|
98
|
+
var _definitionIdRef$curr;
|
|
99
|
+
fireEventCurrent('ui.hoverCard.viewed', {
|
|
100
|
+
previewDisplay: previewDisplay,
|
|
101
|
+
previewInvokeMethod: previewInvokeMethod,
|
|
102
|
+
definitionId: (_definitionIdRef$curr = definitionIdRef.current) !== null && _definitionIdRef$curr !== void 0 ? _definitionIdRef$curr : null
|
|
103
|
+
});
|
|
104
|
+
} else {
|
|
105
|
+
analyticsRef.current.ui.hoverCardViewedEvent({
|
|
89
106
|
previewDisplay: previewDisplay,
|
|
90
107
|
previewInvokeMethod: previewInvokeMethod,
|
|
91
|
-
hoverTime: hoverTime,
|
|
92
108
|
status: statusRef.current
|
|
93
109
|
});
|
|
110
|
+
}
|
|
111
|
+
return function () {
|
|
112
|
+
var hoverTime = Date.now() - cardOpenTime;
|
|
113
|
+
if ((0, _platformFeatureFlags.fg)('platform_migrate-some-ui-events-smart-card')) {
|
|
114
|
+
var _definitionIdRef$curr2;
|
|
115
|
+
fireEventCurrent('ui.hoverCard.dismissed', {
|
|
116
|
+
previewDisplay: previewDisplay,
|
|
117
|
+
previewInvokeMethod: previewInvokeMethod,
|
|
118
|
+
hoverTime: hoverTime,
|
|
119
|
+
definitionId: (_definitionIdRef$curr2 = definitionIdRef.current) !== null && _definitionIdRef$curr2 !== void 0 ? _definitionIdRef$curr2 : null
|
|
120
|
+
});
|
|
121
|
+
} else {
|
|
122
|
+
analyticsRef.current.ui.hoverCardDismissedEvent({
|
|
123
|
+
previewDisplay: previewDisplay,
|
|
124
|
+
previewInvokeMethod: previewInvokeMethod,
|
|
125
|
+
hoverTime: hoverTime,
|
|
126
|
+
status: statusRef.current
|
|
127
|
+
});
|
|
128
|
+
}
|
|
94
129
|
};
|
|
95
130
|
}, []);
|
|
96
131
|
var onClick = (0, _react.useCallback)(function (event) {
|
|
97
132
|
var isModifierKeyPressed = (0, _utils.isSpecialEvent)(event);
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
133
|
+
if ((0, _platformFeatureFlags.fg)('platform_migrate-some-ui-events-smart-card')) {
|
|
134
|
+
fireEvent('ui.smartLink.clicked.titleGoToLink', {
|
|
135
|
+
id: id,
|
|
136
|
+
display: _constants.CardDisplay.HoverCardPreview,
|
|
137
|
+
isModifierKeyPressed: isModifierKeyPressed,
|
|
138
|
+
definitionId: definitionId !== null && definitionId !== void 0 ? definitionId : null
|
|
139
|
+
});
|
|
140
|
+
} else {
|
|
141
|
+
analytics.ui.cardClickedEvent({
|
|
142
|
+
id: id,
|
|
143
|
+
display: _constants.CardDisplay.HoverCardPreview,
|
|
144
|
+
status: cardState.status,
|
|
145
|
+
isModifierKeyPressed: isModifierKeyPressed,
|
|
146
|
+
actionSubjectId: 'titleGoToLink'
|
|
147
|
+
});
|
|
148
|
+
}
|
|
105
149
|
(0, _click.fireLinkClickedEvent)(createAnalyticsEvent)(event);
|
|
106
|
-
}, [createAnalyticsEvent, cardState.status, analytics.ui, id]);
|
|
150
|
+
}, [createAnalyticsEvent, cardState.status, analytics.ui, id, fireEvent, definitionId]);
|
|
107
151
|
var data = (_cardState$details = cardState.details) === null || _cardState$details === void 0 ? void 0 : _cardState$details.data;
|
|
108
152
|
var _getMetadata = (0, _utils2.getMetadata)(extensionKey, data),
|
|
109
153
|
subtitle = _getMetadata.subtitle;
|
|
@@ -20,7 +20,7 @@ var _excluded = ["href", "children", "checkSafety", "onClick", "testId", "isLink
|
|
|
20
20
|
_excluded2 = ["isLinkSafe", "showSafetyWarningModal"];
|
|
21
21
|
var PACKAGE_DATA = {
|
|
22
22
|
packageName: "@atlaskit/smart-card",
|
|
23
|
-
packageVersion: "32.
|
|
23
|
+
packageVersion: "32.6.0",
|
|
24
24
|
componentName: 'linkUrl'
|
|
25
25
|
};
|
|
26
26
|
var Anchor = (0, _click.withLinkClickedEvent)('a');
|
|
@@ -24,7 +24,7 @@ var imgStyles = (0, _react.css)({
|
|
|
24
24
|
height: "var(--ds-space-100, 8px)"
|
|
25
25
|
});
|
|
26
26
|
var textStyles = (0, _react.css)({
|
|
27
|
-
|
|
27
|
+
font: "var(--ds-font-body-UNSAFE_small, normal 400 12px/16px ui-sans-serif, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Ubuntu, system-ui, \"Helvetica Neue\", sans-serif)",
|
|
28
28
|
color: "".concat("var(--ds-text-subtlest, ".concat(_colors.N300, ")")),
|
|
29
29
|
marginRight: "var(--ds-space-050, 4px)",
|
|
30
30
|
marginLeft: "var(--ds-space-025, 2px)"
|
|
@@ -9,6 +9,8 @@ exports.default = void 0;
|
|
|
9
9
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
10
10
|
var _react = _interopRequireWildcard(require("react"));
|
|
11
11
|
var _reactIntlNext = require("react-intl-next");
|
|
12
|
+
var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
|
|
13
|
+
var _useAnalyticsEvents2 = require("../../common/analytics/generated/use-analytics-events");
|
|
12
14
|
var _constants = require("../../constants");
|
|
13
15
|
var _messages = require("../../messages");
|
|
14
16
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
|
|
@@ -23,9 +25,15 @@ var UnauthorisedViewContent = function UnauthorisedViewContent(_ref) {
|
|
|
23
25
|
_ref$testId = _ref.testId,
|
|
24
26
|
testId = _ref$testId === void 0 ? 'unauthorised-view-content' : _ref$testId,
|
|
25
27
|
analytics = _ref.analytics;
|
|
28
|
+
var _useAnalyticsEvents = (0, _useAnalyticsEvents2.useAnalyticsEvents)(),
|
|
29
|
+
fireEvent = _useAnalyticsEvents.fireEvent;
|
|
26
30
|
var handleLearnMoreClick = (0, _react.useCallback)(function () {
|
|
27
|
-
|
|
28
|
-
|
|
31
|
+
if ((0, _platformFeatureFlags.fg)('platform_migrate-some-ui-events-smart-card')) {
|
|
32
|
+
fireEvent('ui.button.clicked.learnMore', {});
|
|
33
|
+
} else {
|
|
34
|
+
analytics === null || analytics === void 0 || analytics.ui.learnMoreClickedEvent();
|
|
35
|
+
}
|
|
36
|
+
}, [analytics === null || analytics === void 0 ? void 0 : analytics.ui, fireEvent]);
|
|
29
37
|
var learnMoreMessage = isProductIntegrationSupported ? _messages.messages.learn_more_about_connecting_account : _messages.messages.learn_more_about_smart_links;
|
|
30
38
|
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, providerName ? /*#__PURE__*/_react.default.createElement(_reactIntlNext.FormattedMessage, (0, _extends2.default)({}, _messages.messages.connect_unauthorised_account_description, {
|
|
31
39
|
values: {
|