@atlaskit/smart-card 26.2.2 → 26.3.1

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 (36) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/dist/cjs/state/hooks/use-invoke/index.js +8 -28
  3. package/dist/cjs/utils/analytics/analytics.js +13 -1
  4. package/dist/cjs/version.json +1 -1
  5. package/dist/cjs/view/FlexibleCard/components/common/lozenge-action/index.js +38 -30
  6. package/dist/cjs/view/FlexibleCard/components/common/lozenge-action/lozenge-action-analytics.js +31 -0
  7. package/dist/cjs/view/FlexibleCard/components/common/lozenge-action/lozenge-action-error/styled.js +1 -1
  8. package/dist/es2019/state/hooks/use-invoke/index.js +4 -23
  9. package/dist/es2019/utils/analytics/analytics.js +10 -0
  10. package/dist/es2019/version.json +1 -1
  11. package/dist/es2019/view/FlexibleCard/components/common/lozenge-action/index.js +14 -6
  12. package/dist/es2019/view/FlexibleCard/components/common/lozenge-action/lozenge-action-analytics.js +21 -0
  13. package/dist/es2019/view/FlexibleCard/components/common/lozenge-action/lozenge-action-error/styled.js +1 -0
  14. package/dist/esm/state/hooks/use-invoke/index.js +8 -28
  15. package/dist/esm/utils/analytics/analytics.js +10 -0
  16. package/dist/esm/version.json +1 -1
  17. package/dist/esm/view/FlexibleCard/components/common/lozenge-action/index.js +38 -30
  18. package/dist/esm/view/FlexibleCard/components/common/lozenge-action/lozenge-action-analytics.js +21 -0
  19. package/dist/esm/view/FlexibleCard/components/common/lozenge-action/lozenge-action-error/styled.js +1 -1
  20. package/dist/types/state/analytics/useSmartLinkAnalytics.d.ts +6 -3
  21. package/dist/types/state/flexible-ui-context/index.d.ts +10 -6
  22. package/dist/types/state/hooks/use-invoke/index.d.ts +1 -7
  23. package/dist/types/state/hooks/useSmartLink.d.ts +5 -3
  24. package/dist/types/utils/analytics/analytics.d.ts +11 -3
  25. package/dist/types/utils/mocks.d.ts +5 -3
  26. package/dist/types/view/FlexibleCard/components/common/lozenge-action/lozenge-action-analytics.d.ts +21 -0
  27. package/dist/types-ts4.5/state/analytics/useSmartLinkAnalytics.d.ts +6 -3
  28. package/dist/types-ts4.5/state/flexible-ui-context/index.d.ts +10 -6
  29. package/dist/types-ts4.5/state/hooks/use-invoke/index.d.ts +1 -7
  30. package/dist/types-ts4.5/state/hooks/useSmartLink.d.ts +5 -3
  31. package/dist/types-ts4.5/utils/analytics/analytics.d.ts +11 -3
  32. package/dist/types-ts4.5/utils/mocks.d.ts +5 -3
  33. package/dist/types-ts4.5/view/FlexibleCard/components/common/lozenge-action/lozenge-action-analytics.d.ts +21 -0
  34. package/package.json +3 -3
  35. package/report.api.md +21 -3
  36. package/tmp/api-report-tmp.d.ts +927 -0
package/CHANGELOG.md CHANGED
@@ -1,5 +1,17 @@
1
1
  # @atlaskit/smart-card
2
2
 
3
+ ## 26.3.1
4
+
5
+ ### Patch Changes
6
+
7
+ - Updated dependencies
8
+
9
+ ## 26.3.0
10
+
11
+ ### Minor Changes
12
+
13
+ - [`8406b471923`](https://bitbucket.org/atlassian/atlassian-frontend/commits/8406b471923) - [ux] Update analytics tracking events for lozenge action
14
+
3
15
  ## 26.2.2
4
16
 
5
17
  ### Patch Changes
@@ -11,50 +11,30 @@ var _react = require("react");
11
11
  var _linkClientExtension = require("@atlaskit/link-client-extension");
12
12
  var _linkProvider = require("@atlaskit/link-provider");
13
13
  var useInvoke = function useInvoke() {
14
- var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
15
- failed = _ref.failed,
16
- started = _ref.started,
17
- success = _ref.success;
18
14
  var _useSmartLinkContext = (0, _linkProvider.useSmartLinkContext)(),
19
15
  connections = _useSmartLinkContext.connections;
20
16
  var clientExt = (0, _linkClientExtension.useSmartLinkClientExtension)(connections.client);
21
17
  return (0, _react.useCallback)( /*#__PURE__*/function () {
22
- var _ref2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(req, cb) {
23
- var _req$action;
24
- var smartLinkActionType, response;
18
+ var _ref = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(req, cb) {
19
+ var response;
25
20
  return _regenerator.default.wrap(function _callee$(_context) {
26
21
  while (1) switch (_context.prev = _context.next) {
27
22
  case 0:
28
- smartLinkActionType = req === null || req === void 0 ? void 0 : (_req$action = req.action) === null || _req$action === void 0 ? void 0 : _req$action.actionType;
29
- _context.prev = 1;
30
- started && started({
31
- smartLinkActionType: smartLinkActionType
32
- });
33
- _context.next = 5;
23
+ _context.next = 2;
34
24
  return clientExt.invoke(req);
35
- case 5:
25
+ case 2:
36
26
  response = _context.sent;
37
- success && success({
38
- smartLinkActionType: smartLinkActionType
39
- });
40
27
  return _context.abrupt("return", cb ? cb(response) : response);
41
- case 10:
42
- _context.prev = 10;
43
- _context.t0 = _context["catch"](1);
44
- failed && failed({
45
- smartLinkActionType: smartLinkActionType
46
- });
47
- throw _context.t0;
48
- case 14:
28
+ case 4:
49
29
  case "end":
50
30
  return _context.stop();
51
31
  }
52
- }, _callee, null, [[1, 10]]);
32
+ }, _callee);
53
33
  }));
54
34
  return function (_x, _x2) {
55
- return _ref2.apply(this, arguments);
35
+ return _ref.apply(this, arguments);
56
36
  };
57
- }(), [clientExt, failed, started, success]);
37
+ }(), [clientExt]);
58
38
  };
59
39
  var _default = useInvoke;
60
40
  exports.default = _default;
@@ -4,7 +4,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
- exports.unresolvedEvent = exports.uiSmartLinkStatusOpenPreviewButtonClicked = exports.uiSmartLinkStatusLozengeButtonClicked = exports.uiSmartLinkStatusListItemButtonClicked = exports.uiRenderSuccessEvent = exports.uiRenderFailedEvent = exports.uiLearnMoreLinkClickedEvent = exports.uiIframeFocusedEvent = exports.uiIframeDwelledEvent = exports.uiHoverCardViewedEvent = exports.uiHoverCardOpenLinkClickedEvent = exports.uiHoverCardDismissedEvent = exports.uiClosedAuthEvent = exports.uiCardClickedEvent = exports.uiAuthEvent = exports.uiAuthAlternateAccountEvent = exports.uiActionClickedEvent = exports.trackSmartLinkQuickActionSuccess = exports.trackSmartLinkQuickActionStarted = exports.trackSmartLinkQuickActionFailed = exports.trackLinkUpdated = exports.trackAppAccountConnected = exports.trackAppAccountAuthStarted = exports.screenAuthPopupEvent = exports.resolvedEvent = exports.invokeSucceededEvent = exports.invokeFailedEvent = exports.fireSmartLinkEvent = exports.context = exports.connectSucceededEvent = exports.connectFailedEvent = exports.chunkloadFailedEvent = exports.SmartLinkEvents = exports.ANALYTICS_CHANNEL = void 0;
7
+ exports.unresolvedEvent = exports.uiSmartLinkStatusOpenPreviewButtonClicked = exports.uiSmartLinkStatusLozengeButtonClicked = exports.uiSmartLinkStatusListItemButtonClicked = exports.uiRenderSuccessEvent = exports.uiRenderFailedEvent = exports.uiLearnMoreLinkClickedEvent = exports.uiIframeFocusedEvent = exports.uiIframeDwelledEvent = exports.uiHoverCardViewedEvent = exports.uiHoverCardOpenLinkClickedEvent = exports.uiHoverCardDismissedEvent = exports.uiClosedAuthEvent = exports.uiCardClickedEvent = exports.uiAuthEvent = exports.uiAuthAlternateAccountEvent = exports.uiActionClickedEvent = exports.trackSmartLinkQuickActionSuccess = exports.trackSmartLinkQuickActionStarted = exports.trackSmartLinkQuickActionFailed = exports.trackLinkUpdated = exports.trackAppAccountConnected = exports.trackAppAccountAuthStarted = exports.screenAuthPopupEvent = exports.resolvedEvent = exports.invokeSucceededEvent = exports.invokeFailedEvent = exports.fireSmartLinkEvent = exports.context = exports.connectSucceededEvent = exports.connectFailedEvent = exports.chunkloadFailedEvent = exports.TrackQuickActionType = exports.TrackQuickActionFailureReason = exports.SmartLinkEvents = exports.ANALYTICS_CHANNEL = void 0;
8
8
  var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
9
9
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
10
10
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
@@ -25,6 +25,18 @@ var context = {
25
25
  packageVersion: _version.version
26
26
  };
27
27
  exports.context = context;
28
+ var TrackQuickActionType = /*#__PURE__*/function (TrackQuickActionType) {
29
+ TrackQuickActionType["StatusUpdate"] = "StatusUpdate";
30
+ return TrackQuickActionType;
31
+ }({});
32
+ exports.TrackQuickActionType = TrackQuickActionType;
33
+ var TrackQuickActionFailureReason = /*#__PURE__*/function (TrackQuickActionFailureReason) {
34
+ TrackQuickActionFailureReason["PermissionError"] = "PermissionError";
35
+ TrackQuickActionFailureReason["ValidationError"] = "ValidationError";
36
+ TrackQuickActionFailureReason["UnknownError"] = "UnknownError";
37
+ return TrackQuickActionFailureReason;
38
+ }({});
39
+ exports.TrackQuickActionFailureReason = TrackQuickActionFailureReason;
28
40
  var uiActionSubjectIds = {
29
41
  DownloadAction: 'downloadDocument',
30
42
  PreviewAction: 'invokePreviewScreen',
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "name": "@atlaskit/smart-card",
3
- "version": "26.2.2",
3
+ "version": "26.3.1",
4
4
  "sideEffects": false
5
5
  }
@@ -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 = 22;
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 = 22;
108
+ _context.next = 24;
108
109
  break;
109
110
  }
110
- _context.prev = 4;
111
+ _context.prev = 5;
111
112
  setIsLoading(true);
112
- _context.next = 8;
113
+ _context.next = 9;
113
114
  return invoke(action.read, _extractLozengeActionItems.default);
114
- case 8:
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 = 19;
125
+ _context.next = 21;
124
126
  break;
125
- case 15:
126
- _context.prev = 15;
127
- _context.t0 = _context["catch"](4);
127
+ case 16:
128
+ _context.prev = 16;
129
+ _context.t0 = _context["catch"](5);
128
130
  setErrorMessage(_types.LozengeActionErrorMessages.unknown);
129
131
  setIsLoaded(false);
130
- case 19:
131
- _context.prev = 19;
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(19);
134
- case 22:
136
+ return _context.finish(21);
137
+ case 24:
135
138
  if (!args.isOpen) {
136
139
  setErrorMessage(undefined);
137
140
  }
138
- case 23:
141
+ case 25:
139
142
  case "end":
140
143
  return _context.stop();
141
144
  }
142
- }, _callee, null, [[4, 15, 19, 22]]);
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 = 16;
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 = 16;
188
+ _context2.next = 17;
183
189
  break;
184
190
  }
185
- _context2.next = 16;
191
+ _context2.next = 17;
186
192
  return reload(url, true, undefined, linkId);
187
- case 16:
188
- _context2.next = 22;
193
+ case 17:
194
+ _context2.next = 23;
189
195
  break;
190
- case 18:
191
- _context2.prev = 18;
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 22:
207
+ case 23:
200
208
  case "end":
201
209
  return _context2.stop();
202
210
  }
203
- }, _callee2, null, [[0, 18]]);
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 === null || analytics === void 0 ? void 0 : analytics.ui, invoke, linkId, reload, url]);
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, {
@@ -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;
@@ -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));
@@ -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
- var _req$action;
15
- const smartLinkActionType = req === null || req === void 0 ? void 0 : (_req$action = req.action) === null || _req$action === void 0 ? void 0 : _req$action.actionType;
16
- try {
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;
@@ -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',
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "name": "@atlaskit/smart-card",
3
- "version": "26.2.2",
3
+ "version": "26.3.1",
4
4
  "sideEffects": false
5
5
  }
@@ -14,6 +14,8 @@ import createStatusUpdateRequest from '../../../../../utils/actions/create-statu
14
14
  import useResolve from '../../../../../state/hooks/use-resolve';
15
15
  import { LozengeActionErrorMessages } from './lozenge-action-error/types';
16
16
  import { useFlexibleUiAnalyticsContext } from '../../../../../state/flexible-ui-context';
17
+ import { TrackQuickActionType } from '../../../../../utils/analytics/analytics';
18
+ import { permissionLoadErrorAnalyticsPayload, unknownLoadErrorAnalyticsPayload, unknownUpdateErrorAnalyticsPayload, validationUpdateErrorAnalyticsPayload } from './lozenge-action-analytics';
17
19
  const validateItems = (items = [], text) => {
18
20
  return items.filter(item => item.text !== text);
19
21
  };
@@ -38,11 +40,7 @@ const LozengeAction = ({
38
40
  const reload = useResolve();
39
41
  //TODO EDM-6583 Replace usage of useFlexibleUiAnalyticsContext with linking platform analytics context from find team.
40
42
  const analytics = useFlexibleUiAnalyticsContext();
41
- const invoke = useInvoke({
42
- started: analytics === null || analytics === void 0 ? void 0 : analytics.track.smartLinkQuickActionStarted,
43
- success: analytics === null || analytics === void 0 ? void 0 : analytics.track.smartLinkQuickActionSuccess,
44
- failed: analytics === null || analytics === void 0 ? void 0 : analytics.track.smartLinkQuickActionFailed
45
- });
43
+ const invoke = useInvoke();
46
44
  useEffect(() => {
47
45
  setSelected({
48
46
  text,
@@ -58,6 +56,9 @@ const LozengeAction = ({
58
56
  setIsOpen(args.isOpen);
59
57
  if (args.isOpen) {
60
58
  analytics === null || analytics === void 0 ? void 0 : analytics.ui.smartLinkLozengeActionClickedEvent();
59
+ analytics === null || analytics === void 0 ? void 0 : analytics.track.smartLinkQuickActionStarted({
60
+ smartLinkActionType: TrackQuickActionType.StatusUpdate
61
+ });
61
62
  if (!isLoaded && action !== null && action !== void 0 && action.read) {
62
63
  try {
63
64
  setIsLoading(true);
@@ -66,12 +67,14 @@ const LozengeAction = ({
66
67
  setItems(validItems);
67
68
  setIsLoaded(true);
68
69
  if ((validItems === null || validItems === void 0 ? void 0 : validItems.length) === 0) {
70
+ analytics === null || analytics === void 0 ? void 0 : analytics.track.smartLinkQuickActionFailed(permissionLoadErrorAnalyticsPayload);
69
71
  setErrorMessage(LozengeActionErrorMessages.noData);
70
72
  setIsLoaded(false);
71
73
  }
72
74
  } catch (err) {
73
75
  setErrorMessage(LozengeActionErrorMessages.unknown);
74
76
  setIsLoaded(false);
77
+ analytics === null || analytics === void 0 ? void 0 : analytics.track.smartLinkQuickActionFailed(unknownLoadErrorAnalyticsPayload);
75
78
  } finally {
76
79
  setIsLoading(false);
77
80
  }
@@ -102,6 +105,9 @@ const LozengeAction = ({
102
105
  setIsLoaded(false);
103
106
  setIsOpen(false);
104
107
  setItems([]);
108
+ analytics === null || analytics === void 0 ? void 0 : analytics.track.smartLinkQuickActionSuccess({
109
+ smartLinkActionType: TrackQuickActionType.StatusUpdate
110
+ });
105
111
  if (url) {
106
112
  await reload(url, true, undefined, linkId);
107
113
  }
@@ -110,11 +116,13 @@ const LozengeAction = ({
110
116
  setIsLoading(false);
111
117
  if (isInvokeCustomError(err)) {
112
118
  setErrorMessage(err.message);
119
+ analytics === null || analytics === void 0 ? void 0 : analytics.track.smartLinkQuickActionFailed(validationUpdateErrorAnalyticsPayload);
113
120
  } else {
114
121
  setErrorMessage(LozengeActionErrorMessages.updateFailed);
122
+ analytics === null || analytics === void 0 ? void 0 : analytics.track.smartLinkQuickActionFailed(unknownUpdateErrorAnalyticsPayload);
115
123
  }
116
124
  }
117
- }, [action === null || action === void 0 ? void 0 : action.update, analytics === null || analytics === void 0 ? void 0 : analytics.ui, invoke, linkId, reload, url]);
125
+ }, [action === null || action === void 0 ? void 0 : action.update, analytics, invoke, linkId, reload, url]);
118
126
  const dropdownItemGroup = useMemo(() => {
119
127
  if (errorMessage) {
120
128
  return jsx(LozengeActionError, {
@@ -0,0 +1,21 @@
1
+ import { TrackQuickActionFailureReason, TrackQuickActionType } from '../../../../../utils/analytics/analytics';
2
+ export const unknownLoadErrorAnalyticsPayload = {
3
+ smartLinkActionType: TrackQuickActionType.StatusUpdate,
4
+ reason: TrackQuickActionFailureReason.UnknownError,
5
+ step: 'load'
6
+ };
7
+ export const permissionLoadErrorAnalyticsPayload = {
8
+ smartLinkActionType: TrackQuickActionType.StatusUpdate,
9
+ reason: TrackQuickActionFailureReason.PermissionError,
10
+ step: 'load'
11
+ };
12
+ export const unknownUpdateErrorAnalyticsPayload = {
13
+ smartLinkActionType: TrackQuickActionType.StatusUpdate,
14
+ reason: TrackQuickActionFailureReason.UnknownError,
15
+ step: 'update'
16
+ };
17
+ export const validationUpdateErrorAnalyticsPayload = {
18
+ smartLinkActionType: TrackQuickActionType.StatusUpdate,
19
+ reason: TrackQuickActionFailureReason.ValidationError,
20
+ step: 'update'
21
+ };
@@ -36,6 +36,7 @@ export const contentStyles = css`
36
36
  export const linkStyles = css`
37
37
  ${sharedBlockStyles};
38
38
 
39
+ cursor: pointer;
39
40
  font-size: 0.875rem;
40
41
  margin-top: 10px;
41
42
  margin-left: ${"var(--ds-space-400, 32px)"};
@@ -4,49 +4,29 @@ import { useCallback } from 'react';
4
4
  import { useSmartLinkClientExtension } from '@atlaskit/link-client-extension';
5
5
  import { useSmartLinkContext } from '@atlaskit/link-provider';
6
6
  var useInvoke = function useInvoke() {
7
- var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
8
- failed = _ref.failed,
9
- started = _ref.started,
10
- success = _ref.success;
11
7
  var _useSmartLinkContext = useSmartLinkContext(),
12
8
  connections = _useSmartLinkContext.connections;
13
9
  var clientExt = useSmartLinkClientExtension(connections.client);
14
10
  return useCallback( /*#__PURE__*/function () {
15
- var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(req, cb) {
16
- var _req$action;
17
- var smartLinkActionType, response;
11
+ var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(req, cb) {
12
+ var response;
18
13
  return _regeneratorRuntime.wrap(function _callee$(_context) {
19
14
  while (1) switch (_context.prev = _context.next) {
20
15
  case 0:
21
- smartLinkActionType = req === null || req === void 0 ? void 0 : (_req$action = req.action) === null || _req$action === void 0 ? void 0 : _req$action.actionType;
22
- _context.prev = 1;
23
- started && started({
24
- smartLinkActionType: smartLinkActionType
25
- });
26
- _context.next = 5;
16
+ _context.next = 2;
27
17
  return clientExt.invoke(req);
28
- case 5:
18
+ case 2:
29
19
  response = _context.sent;
30
- success && success({
31
- smartLinkActionType: smartLinkActionType
32
- });
33
20
  return _context.abrupt("return", cb ? cb(response) : response);
34
- case 10:
35
- _context.prev = 10;
36
- _context.t0 = _context["catch"](1);
37
- failed && failed({
38
- smartLinkActionType: smartLinkActionType
39
- });
40
- throw _context.t0;
41
- case 14:
21
+ case 4:
42
22
  case "end":
43
23
  return _context.stop();
44
24
  }
45
- }, _callee, null, [[1, 10]]);
25
+ }, _callee);
46
26
  }));
47
27
  return function (_x, _x2) {
48
- return _ref2.apply(this, arguments);
28
+ return _ref.apply(this, arguments);
49
29
  };
50
- }(), [clientExt, failed, started, success]);
30
+ }(), [clientExt]);
51
31
  };
52
32
  export default useInvoke;
@@ -16,6 +16,16 @@ export var context = {
16
16
  packageName: packageName,
17
17
  packageVersion: packageVersion
18
18
  };
19
+ export var TrackQuickActionType = /*#__PURE__*/function (TrackQuickActionType) {
20
+ TrackQuickActionType["StatusUpdate"] = "StatusUpdate";
21
+ return TrackQuickActionType;
22
+ }({});
23
+ export var TrackQuickActionFailureReason = /*#__PURE__*/function (TrackQuickActionFailureReason) {
24
+ TrackQuickActionFailureReason["PermissionError"] = "PermissionError";
25
+ TrackQuickActionFailureReason["ValidationError"] = "ValidationError";
26
+ TrackQuickActionFailureReason["UnknownError"] = "UnknownError";
27
+ return TrackQuickActionFailureReason;
28
+ }({});
19
29
  var uiActionSubjectIds = {
20
30
  DownloadAction: 'downloadDocument',
21
31
  PreviewAction: 'invokePreviewScreen',
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "name": "@atlaskit/smart-card",
3
- "version": "26.2.2",
3
+ "version": "26.3.1",
4
4
  "sideEffects": false
5
5
  }