@atlaskit/smart-card 21.3.0 → 22.0.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.
Files changed (45) hide show
  1. package/CHANGELOG.md +43 -0
  2. package/dist/cjs/extractors/common/actions/extractPreviewAction.js +10 -2
  3. package/dist/cjs/state/actions/index.js +54 -10
  4. package/dist/cjs/state/analytics/types.js +5 -0
  5. package/dist/cjs/state/analytics/useSmartLinkAnalytics.js +386 -109
  6. package/dist/cjs/utils/analytics/analytics.js +239 -72
  7. package/dist/cjs/utils/analytics/index.js +32 -5
  8. package/dist/cjs/version.json +1 -1
  9. package/dist/cjs/view/CardWithUrl/component.js +25 -3
  10. package/dist/cjs/view/CardWithUrl/loader.js +6 -1
  11. package/dist/cjs/view/HoverCard/components/HoverCardComponent.js +9 -2
  12. package/dist/cjs/view/HoverCard/components/HoverCardContent.js +15 -4
  13. package/dist/cjs/view/HoverCard/index.js +6 -1
  14. package/dist/es2019/extractors/common/actions/extractPreviewAction.js +10 -2
  15. package/dist/es2019/state/actions/index.js +54 -10
  16. package/dist/es2019/state/analytics/types.js +1 -0
  17. package/dist/es2019/state/analytics/useSmartLinkAnalytics.js +379 -39
  18. package/dist/es2019/utils/analytics/analytics.js +253 -78
  19. package/dist/es2019/utils/analytics/index.js +32 -4
  20. package/dist/es2019/version.json +1 -1
  21. package/dist/es2019/view/CardWithUrl/component.js +25 -3
  22. package/dist/es2019/view/CardWithUrl/loader.js +6 -1
  23. package/dist/es2019/view/HoverCard/components/HoverCardComponent.js +9 -2
  24. package/dist/es2019/view/HoverCard/components/HoverCardContent.js +15 -4
  25. package/dist/es2019/view/HoverCard/index.js +6 -1
  26. package/dist/esm/extractors/common/actions/extractPreviewAction.js +10 -2
  27. package/dist/esm/state/actions/index.js +54 -10
  28. package/dist/esm/state/analytics/types.js +1 -0
  29. package/dist/esm/state/analytics/useSmartLinkAnalytics.js +383 -109
  30. package/dist/esm/utils/analytics/analytics.js +239 -72
  31. package/dist/esm/utils/analytics/index.js +31 -4
  32. package/dist/esm/version.json +1 -1
  33. package/dist/esm/view/CardWithUrl/component.js +25 -3
  34. package/dist/esm/view/CardWithUrl/loader.js +6 -1
  35. package/dist/esm/view/HoverCard/components/HoverCardComponent.js +9 -2
  36. package/dist/esm/view/HoverCard/components/HoverCardContent.js +15 -4
  37. package/dist/esm/view/HoverCard/index.js +6 -1
  38. package/dist/types/state/analytics/types.d.ts +9 -0
  39. package/dist/types/state/analytics/useSmartLinkAnalytics.d.ts +18 -23
  40. package/dist/types/state/hooks/useSmartLink.d.ts +17 -18
  41. package/dist/types/utils/analytics/analytics.d.ts +19 -21
  42. package/dist/types/utils/analytics/index.d.ts +2 -2
  43. package/dist/types/utils/analytics/types.d.ts +91 -0
  44. package/package.json +1 -1
  45. package/report.api.md +271 -108
@@ -75,7 +75,11 @@ var HoverCardComponent = function HoverCardComponent(_ref) {
75
75
  //Check its previously open to avoid firing events when moving between the child and hover card components
76
76
  if (isOpen === true && cardOpenTime.current) {
77
77
  var hoverTime = Date.now() - cardOpenTime.current;
78
- analytics.ui.hoverCardDismissedEvent('card', hoverTime, 'mouse_hover');
78
+ analytics.ui.hoverCardDismissedEvent({
79
+ previewDisplay: 'card',
80
+ hoverTime: hoverTime,
81
+ previewInvokeMethod: 'mouse_hover'
82
+ });
79
83
  }
80
84
 
81
85
  setIsOpen(false);
@@ -100,7 +104,10 @@ var HoverCardComponent = function HoverCardComponent(_ref) {
100
104
  //Check if its previously closed to avoid firing events when moving between the child and hover card components
101
105
  if (isOpen === false) {
102
106
  cardOpenTime.current = Date.now();
103
- analytics.ui.hoverCardViewedEvent(hoverDisplay, invokeMethod);
107
+ analytics.ui.hoverCardViewedEvent({
108
+ previewDisplay: hoverDisplay,
109
+ previewInvokeMethod: invokeMethod
110
+ });
104
111
  } //If these are undefined then popupOffset is undefined and we fallback to default bottom-start placement
105
112
 
106
113
 
@@ -55,7 +55,9 @@ var getOpenAction = function getOpenAction(url, analytics, onActionClick) {
55
55
  }
56
56
 
57
57
  window.open(url, '_blank');
58
- analytics.ui.hoverCardOpenLinkClickedEvent('card');
58
+ analytics.ui.hoverCardOpenLinkClickedEvent({
59
+ previewDisplay: 'card'
60
+ });
59
61
  },
60
62
  testId: 'hover-card-open-button'
61
63
  };
@@ -102,15 +104,24 @@ var HoverCardContent = function HoverCardContent(_ref) {
102
104
  (0, _react.useEffect)(function () {
103
105
  // Since hover preview only render on resolved status,
104
106
  // there is no need to check for statuses.
105
- analytics.ui.renderSuccessEvent(_utils2.SMART_CARD_ANALYTICS_DISPLAY, cardState.status);
107
+ analytics.ui.renderSuccessEvent({
108
+ display: _utils2.SMART_CARD_ANALYTICS_DISPLAY,
109
+ status: cardState.status
110
+ });
106
111
  }, [analytics.ui, cardState.status]);
107
112
  var extensionKey = (0, _react.useMemo)(function () {
108
113
  return (0, _helpers.getExtensionKey)(cardState.details);
109
114
  }, [cardState.details]);
110
115
  var onClick = (0, _react.useCallback)(function (event) {
111
116
  var isModifierKeyPressed = (0, _utils.isSpecialEvent)(event);
112
- analytics.ui.cardClickedEvent(undefined, _utils2.SMART_CARD_ANALYTICS_DISPLAY, cardState.status, undefined, undefined, isModifierKeyPressed, undefined, undefined, undefined, 'titleGoToLink');
113
- }, [cardState.status, analytics.ui]);
117
+ analytics.ui.cardClickedEvent({
118
+ id: id,
119
+ display: _utils2.SMART_CARD_ANALYTICS_DISPLAY,
120
+ status: cardState.status,
121
+ isModifierKeyPressed: isModifierKeyPressed,
122
+ actionSubjectId: 'titleGoToLink'
123
+ });
124
+ }, [cardState.status, analytics.ui, id]);
114
125
  var titleActions = (0, _react.useMemo)(function () {
115
126
  return [getOpenAction(url, analytics, onActionClick)];
116
127
  }, [url, analytics, onActionClick]);
@@ -36,7 +36,12 @@ var HoverCardWithErrorBoundary = function HoverCardWithErrorBoundary(props) {
36
36
  }, [createAnalyticsEvent]);
37
37
  var analytics = (0, _analytics.useSmartLinkAnalytics)(url, analyticsHandler, id);
38
38
  var onError = (0, _react.useCallback)(function (error, info) {
39
- analytics.ui.renderFailedEvent(_utils.SMART_CARD_ANALYTICS_DISPLAY, id, error, info);
39
+ analytics.ui.renderFailedEvent({
40
+ display: _utils.SMART_CARD_ANALYTICS_DISPLAY,
41
+ id: id,
42
+ error: error,
43
+ errorInfo: info
44
+ });
40
45
  }, [analytics.ui, id]);
41
46
  return (0, _core.jsx)(_reactErrorBoundary.ErrorBoundary, {
42
47
  fallback: children,
@@ -54,10 +54,18 @@ export const extractPreviewAction = (extensionKey = 'empty-object-provider', vie
54
54
  featureFlags,
55
55
  testId,
56
56
  onOpen: () => {
57
- handleAnalytics(uiRenderSuccessEvent('preview', 'resolved', key));
57
+ handleAnalytics(uiRenderSuccessEvent({
58
+ display: 'preview',
59
+ status: 'resolved',
60
+ extensionKey: key
61
+ }));
58
62
  },
59
63
  onOpenFailed: (error, errorInfo) => {
60
- handleAnalytics(uiRenderFailedEvent('preview', error, errorInfo));
64
+ handleAnalytics(uiRenderFailedEvent({
65
+ display: 'preview',
66
+ error,
67
+ errorInfo
68
+ }));
61
69
  },
62
70
  onDownloadActionClick: () => {
63
71
  handleInvoke(getInvokeOpts(key, 'DownloadAction'));
@@ -155,24 +155,51 @@ export const useSmartCardActions = (id, url, analytics) => {
155
155
  const services = getServices(details); // When authentication is triggered, let GAS know!
156
156
 
157
157
  if (status === 'unauthorized') {
158
- analytics.ui.authEvent(appearance, definitionId, extensionKey);
158
+ analytics.ui.authEvent({
159
+ display: appearance,
160
+ definitionId,
161
+ extensionKey
162
+ });
159
163
  }
160
164
 
161
165
  if (status === 'forbidden') {
162
- analytics.ui.authAlternateAccountEvent(appearance, definitionId, extensionKey);
166
+ analytics.ui.authAlternateAccountEvent({
167
+ display: appearance,
168
+ definitionId,
169
+ extensionKey
170
+ });
163
171
  }
164
172
 
165
173
  if (services.length > 0) {
166
- analytics.screen.authPopupEvent(definitionId, extensionKey);
174
+ analytics.screen.authPopupEvent({
175
+ definitionId,
176
+ extensionKey
177
+ });
167
178
  auth(services[0].url).then(() => {
168
- analytics.track.appAccountConnected(definitionId, extensionKey);
169
- analytics.operational.connectSucceededEvent(id, definitionId, extensionKey);
179
+ analytics.track.appAccountConnected({
180
+ definitionId,
181
+ extensionKey
182
+ });
183
+ analytics.operational.connectSucceededEvent({
184
+ id,
185
+ definitionId,
186
+ extensionKey
187
+ });
170
188
  reload();
171
189
  }, err => {
172
- analytics.operational.connectFailedEvent(id, definitionId, extensionKey, err.type);
190
+ analytics.operational.connectFailedEvent({
191
+ id,
192
+ definitionId,
193
+ extensionKey,
194
+ reason: err.type
195
+ });
173
196
 
174
197
  if (err.type === 'auth_window_closed') {
175
- analytics.ui.closedAuthEvent(appearance, definitionId, extensionKey);
198
+ analytics.ui.closedAuthEvent({
199
+ display: appearance,
200
+ definitionId,
201
+ extensionKey
202
+ });
176
203
  }
177
204
 
178
205
  reload();
@@ -191,7 +218,13 @@ export const useSmartCardActions = (id, url, analytics) => {
191
218
 
192
219
  try {
193
220
  // Begin analytics instrumentation.
194
- analytics.ui.actionClickedEvent(id, key, action.type, source, opts.type); // Invoke action - either client-side or server-side.
221
+ analytics.ui.actionClickedEvent({
222
+ id,
223
+ extensionKey: key,
224
+ actionType: action.type,
225
+ display: source,
226
+ invokeType: opts.type
227
+ }); // Invoke action - either client-side or server-side.
195
228
 
196
229
  let response;
197
230
 
@@ -202,11 +235,22 @@ export const useSmartCardActions = (id, url, analytics) => {
202
235
  }
203
236
 
204
237
  measure.mark(markName, 'resolved');
205
- analytics.operational.invokeSucceededEvent(id, key, action.type, source);
238
+ analytics.operational.invokeSucceededEvent({
239
+ id,
240
+ extensionKey: key,
241
+ actionType: action.type,
242
+ display: source
243
+ });
206
244
  return response;
207
245
  } catch (err) {
208
246
  measure.mark(markName, 'errored');
209
- analytics.operational.invokeFailedEvent(id, key, action.type, source, err.message);
247
+ analytics.operational.invokeFailedEvent({
248
+ id,
249
+ extensionKey: key,
250
+ actionType: action.type,
251
+ display: source,
252
+ reason: err.message
253
+ });
210
254
  throw err;
211
255
  }
212
256
  }, [id, analytics.ui, analytics.operational, connections.client]);
@@ -0,0 +1 @@
1
+ export {};