@atlaskit/smart-hooks 0.1.7 → 0.1.8

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 (47) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/dist/cjs/i18n/cs.js +0 -1
  3. package/dist/cjs/i18n/da.js +0 -1
  4. package/dist/cjs/i18n/de.js +0 -1
  5. package/dist/cjs/i18n/en_ZZ.js +0 -1
  6. package/dist/cjs/i18n/es.js +0 -1
  7. package/dist/cjs/i18n/et.js +0 -1
  8. package/dist/cjs/i18n/fi.js +0 -1
  9. package/dist/cjs/i18n/fr.js +0 -1
  10. package/dist/cjs/i18n/hu.js +0 -1
  11. package/dist/cjs/i18n/index.js +0 -31
  12. package/dist/cjs/i18n/it.js +0 -1
  13. package/dist/cjs/i18n/ja.js +0 -1
  14. package/dist/cjs/i18n/ko.js +0 -1
  15. package/dist/cjs/i18n/nb.js +0 -1
  16. package/dist/cjs/i18n/nl.js +0 -1
  17. package/dist/cjs/i18n/pl.js +0 -1
  18. package/dist/cjs/i18n/pt_BR.js +0 -1
  19. package/dist/cjs/i18n/pt_PT.js +0 -1
  20. package/dist/cjs/i18n/ru.js +0 -1
  21. package/dist/cjs/i18n/sk.js +0 -1
  22. package/dist/cjs/i18n/sv.js +0 -1
  23. package/dist/cjs/i18n/th.js +0 -1
  24. package/dist/cjs/i18n/tr.js +0 -1
  25. package/dist/cjs/i18n/uk.js +0 -1
  26. package/dist/cjs/i18n/vi.js +0 -1
  27. package/dist/cjs/i18n/zh.js +0 -1
  28. package/dist/cjs/i18n/zh_TW.js +0 -1
  29. package/dist/cjs/index.js +0 -3
  30. package/dist/cjs/messages.js +0 -2
  31. package/dist/cjs/services/use-function-usage-tracking/index.js +8 -13
  32. package/dist/cjs/services/use-user-recommendations/analytics.js +9 -25
  33. package/dist/cjs/services/use-user-recommendations/index.js +42 -88
  34. package/dist/cjs/services/use-user-recommendations/ufoExperiences.js +0 -2
  35. package/dist/cjs/utils/transform-recommendations-to-options/index.js +0 -16
  36. package/dist/cjs/version.json +1 -1
  37. package/dist/es2019/services/use-function-usage-tracking/index.js +6 -6
  38. package/dist/es2019/services/use-user-recommendations/analytics.js +0 -2
  39. package/dist/es2019/services/use-user-recommendations/index.js +16 -18
  40. package/dist/es2019/utils/transform-recommendations-to-options/index.js +0 -10
  41. package/dist/es2019/version.json +1 -1
  42. package/dist/esm/services/use-function-usage-tracking/index.js +8 -9
  43. package/dist/esm/services/use-user-recommendations/analytics.js +9 -14
  44. package/dist/esm/services/use-user-recommendations/index.js +42 -68
  45. package/dist/esm/utils/transform-recommendations-to-options/index.js +0 -12
  46. package/dist/esm/version.json +1 -1
  47. package/package.json +8 -6
@@ -2,11 +2,8 @@ import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
2
2
  import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
3
3
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
4
4
  import _regeneratorRuntime from "@babel/runtime/regenerator";
5
-
6
5
  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; }
7
-
8
6
  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) { _defineProperty(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; }
9
-
10
7
  import { useCallback, useEffect, useMemo, useRef, useState } from 'react';
11
8
  import debounce from 'lodash/debounce';
12
9
  import memoizeOne from 'memoize-one';
@@ -30,54 +27,46 @@ export var instrumentFailureOption = [{
30
27
  entityType: EntityType.USER,
31
28
  avatarUrl: ''
32
29
  }];
33
-
34
30
  var useUserRecommendations = function useUserRecommendations(props) {
35
31
  var _defaultProps$props = _objectSpread(_objectSpread({}, defaultProps), props),
36
- baseUrl = _defaultProps$props.baseUrl,
37
- childObjectId = _defaultProps$props.childObjectId,
38
- containerId = _defaultProps$props.containerId,
39
- debounceTimeMs = _defaultProps$props.debounceTimeMs,
40
- fieldId = _defaultProps$props.fieldId,
41
- includeUsers = _defaultProps$props.includeUsers,
42
- includeGroups = _defaultProps$props.includeGroups,
43
- includeTeams = _defaultProps$props.includeTeams,
44
- maxNumberOfResults = _defaultProps$props.maxNumberOfResults,
45
- objectId = _defaultProps$props.objectId,
46
- preload = _defaultProps$props.preload,
47
- principalId = _defaultProps$props.principalId,
48
- productAttributes = _defaultProps$props.productAttributes,
49
- productKey = _defaultProps$props.productKey,
50
- cpusSearchQuery = _defaultProps$props.cpusSearchQuery,
51
- tenantId = _defaultProps$props.tenantId;
52
-
32
+ baseUrl = _defaultProps$props.baseUrl,
33
+ childObjectId = _defaultProps$props.childObjectId,
34
+ containerId = _defaultProps$props.containerId,
35
+ debounceTimeMs = _defaultProps$props.debounceTimeMs,
36
+ fieldId = _defaultProps$props.fieldId,
37
+ includeUsers = _defaultProps$props.includeUsers,
38
+ includeGroups = _defaultProps$props.includeGroups,
39
+ includeTeams = _defaultProps$props.includeTeams,
40
+ maxNumberOfResults = _defaultProps$props.maxNumberOfResults,
41
+ objectId = _defaultProps$props.objectId,
42
+ preload = _defaultProps$props.preload,
43
+ principalId = _defaultProps$props.principalId,
44
+ productAttributes = _defaultProps$props.productAttributes,
45
+ productKey = _defaultProps$props.productKey,
46
+ cpusSearchQuery = _defaultProps$props.cpusSearchQuery,
47
+ tenantId = _defaultProps$props.tenantId;
53
48
  var _useState = useState([]),
54
- _useState2 = _slicedToArray(_useState, 2),
55
- recommendations = _useState2[0],
56
- setRecommendations = _useState2[1];
57
-
49
+ _useState2 = _slicedToArray(_useState, 2),
50
+ recommendations = _useState2[0],
51
+ setRecommendations = _useState2[1];
58
52
  var _useState3 = useState(false),
59
- _useState4 = _slicedToArray(_useState3, 2),
60
- isLoading = _useState4[0],
61
- setIsLoading = _useState4[1];
62
-
53
+ _useState4 = _slicedToArray(_useState3, 2),
54
+ isLoading = _useState4[0],
55
+ setIsLoading = _useState4[1];
63
56
  var _useState5 = useState(),
64
- _useState6 = _slicedToArray(_useState5, 2),
65
- error = _useState6[0],
66
- setError = _useState6[1];
67
-
57
+ _useState6 = _slicedToArray(_useState5, 2),
58
+ error = _useState6[0],
59
+ setError = _useState6[1];
68
60
  var _useState7 = useState(function () {
69
- return uuid();
70
- }),
71
- _useState8 = _slicedToArray(_useState7, 1),
72
- renderId = _useState8[0];
73
-
61
+ return uuid();
62
+ }),
63
+ _useState8 = _slicedToArray(_useState7, 1),
64
+ renderId = _useState8[0];
74
65
  var sessionId = useRef('');
75
66
  var currentQuery = useRef('');
76
67
  var lastAbortController = useRef();
77
-
78
68
  var _useAnalyticsEvents = useAnalyticsEvents(),
79
- createAnalyticsEvent = _useAnalyticsEvents.createAnalyticsEvent;
80
-
69
+ createAnalyticsEvent = _useAnalyticsEvents.createAnalyticsEvent;
81
70
  var getAnalyticsAttributes = useCallback(function () {
82
71
  return _objectSpread({}, createDefaultAttributes({
83
72
  fieldId: fieldId,
@@ -95,23 +84,20 @@ var useUserRecommendations = function useUserRecommendations(props) {
95
84
  var fetchRecommendations = useCallback( /*#__PURE__*/function () {
96
85
  var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(query) {
97
86
  var _lastAbortController$, currentController, recommendedUsersResult;
98
-
99
87
  return _regeneratorRuntime.wrap(function _callee$(_context) {
100
88
  while (1) {
101
89
  switch (_context.prev = _context.next) {
102
90
  case 0:
103
- setIsLoading(true); // restart session
104
-
91
+ setIsLoading(true);
92
+ // restart session
105
93
  sessionId.current = uuid();
106
94
  UsersFetchedUfoExperience.getInstance(fieldId).start();
107
95
  _context.prev = 3;
108
-
109
96
  if (lastAbortController.current) {
110
97
  (_lastAbortController$ = lastAbortController.current) === null || _lastAbortController$ === void 0 ? void 0 : _lastAbortController$.abort();
111
- } // in case there are still IE users, check AbortController before init,
98
+ }
99
+ // in case there are still IE users, check AbortController before init,
112
100
  // IE has no timeout applied on fetch since AbortController isn't available
113
-
114
-
115
101
  currentController = typeof AbortController !== 'undefined' ? new AbortController() : null;
116
102
  lastAbortController.current = currentController;
117
103
  _context.next = 9;
@@ -135,7 +121,6 @@ var useUserRecommendations = function useUserRecommendations(props) {
135
121
  searchQuery: cpusSearchQuery,
136
122
  query: query
137
123
  }, currentController === null || currentController === void 0 ? void 0 : currentController.signal);
138
-
139
124
  case 9:
140
125
  recommendedUsersResult = _context.sent;
141
126
  currentQuery.current = query !== null && query !== void 0 ? query : '';
@@ -147,32 +132,26 @@ var useUserRecommendations = function useUserRecommendations(props) {
147
132
  setRecommendations(recommendedUsersResult);
148
133
  _context.next = 24;
149
134
  break;
150
-
151
135
  case 15:
152
136
  _context.prev = 15;
153
137
  _context.t0 = _context["catch"](3);
154
-
155
138
  if (!(_context.t0 instanceof Error && _context.t0.name === 'AbortError')) {
156
139
  _context.next = 22;
157
140
  break;
158
141
  }
159
-
160
142
  // Request aborted client-side
161
- UsersFetchedUfoExperience.getInstance(fieldId).abort(); // return early to prevent disabling isLoading
162
-
143
+ UsersFetchedUfoExperience.getInstance(fieldId).abort();
144
+ // return early to prevent disabling isLoading
163
145
  return _context.abrupt("return");
164
-
165
146
  case 22:
166
147
  UsersFetchedUfoExperience.getInstance(fieldId).failure({
167
148
  metadata: getAnalyticsAttributes()
168
149
  });
169
150
  setError(_context.t0);
170
-
171
151
  case 24:
172
- setIsLoading(false); // clear abort controller
173
-
152
+ setIsLoading(false);
153
+ // clear abort controller
174
154
  lastAbortController.current = undefined;
175
-
176
155
  case 26:
177
156
  case "end":
178
157
  return _context.stop();
@@ -180,7 +159,6 @@ var useUserRecommendations = function useUserRecommendations(props) {
180
159
  }
181
160
  }, _callee, null, [[3, 15]]);
182
161
  }));
183
-
184
162
  return function (_x) {
185
163
  return _ref.apply(this, arguments);
186
164
  };
@@ -203,15 +181,12 @@ var useUserRecommendations = function useUserRecommendations(props) {
203
181
  position: findUserPosition(recommendations, userId)
204
182
  }));
205
183
  }, [createAnalyticsEvent, getAnalyticsAttributes, recommendations]);
206
-
207
184
  var _useFunctionUsageTrac = useFunctionUsageTracking(onInputChange),
208
- isOnInputChangeUsed = _useFunctionUsageTrac.isUsed,
209
- usageTrackedOnInputChange = _useFunctionUsageTrac.trackingFunction;
210
-
185
+ isOnInputChangeUsed = _useFunctionUsageTrac.isUsed,
186
+ usageTrackedOnInputChange = _useFunctionUsageTrac.trackingFunction;
211
187
  var _useFunctionUsageTrac2 = useFunctionUsageTracking(onUserSelect),
212
- isOnUserSelectUsed = _useFunctionUsageTrac2.isUsed,
213
- usageTrackedOnUserSelect = _useFunctionUsageTrac2.trackingFunction;
214
-
188
+ isOnUserSelectUsed = _useFunctionUsageTrac2.isUsed,
189
+ usageTrackedOnUserSelect = _useFunctionUsageTrac2.trackingFunction;
215
190
  return {
216
191
  recommendations: isOnInputChangeUsed && isOnUserSelectUsed ? recommendations : instrumentFailureOption,
217
192
  triggerSearchFactory: usageTrackedOnInputChange,
@@ -220,5 +195,4 @@ var useUserRecommendations = function useUserRecommendations(props) {
220
195
  error: error
221
196
  };
222
197
  };
223
-
224
198
  export default useUserRecommendations;
@@ -1,14 +1,11 @@
1
1
  import { EntityType } from '@atlaskit/smart-common';
2
2
  import { GroupType, TeamType, UserType } from '@atlaskit/user-picker';
3
3
  import { messages } from '../../messages';
4
-
5
4
  var getLozenzeProperties = function getLozenzeProperties(entity, intl) {
6
5
  var _entity$attributes, _entity$attributes2;
7
-
8
6
  if ((_entity$attributes = entity.attributes) !== null && _entity$attributes !== void 0 && _entity$attributes.workspaceMember) {
9
7
  return intl.formatMessage(messages.memberLozengeText);
10
8
  }
11
-
12
9
  if ((_entity$attributes2 = entity.attributes) !== null && _entity$attributes2 !== void 0 && _entity$attributes2.isConfluenceExternalCollaborator) {
13
10
  var lozengeTooltipMessage = entity.entityType === EntityType.GROUP ? messages.guestGroupLozengeTooltip : messages.guestUserLozengeTooltip;
14
11
  return {
@@ -17,13 +14,10 @@ var getLozenzeProperties = function getLozenzeProperties(entity, intl) {
17
14
  appearance: 'new'
18
15
  };
19
16
  }
20
-
21
17
  return undefined;
22
18
  };
23
-
24
19
  var transformRecommendation = function transformRecommendation(item, intl) {
25
20
  var type = item.entityType;
26
-
27
21
  if (type === EntityType.USER) {
28
22
  var user = item;
29
23
  var lozenge = getLozenzeProperties(user, intl);
@@ -36,7 +30,6 @@ var transformRecommendation = function transformRecommendation(item, intl) {
36
30
  lozenge: lozenge
37
31
  };
38
32
  }
39
-
40
33
  if (type === EntityType.TEAM) {
41
34
  var team = item;
42
35
  return {
@@ -49,12 +42,9 @@ var transformRecommendation = function transformRecommendation(item, intl) {
49
42
  avatarUrl: team.largeAvatarImageUrl || team.smallAvatarImageUrl
50
43
  };
51
44
  }
52
-
53
45
  if (type === EntityType.GROUP) {
54
46
  var group = item;
55
-
56
47
  var _lozenge = getLozenzeProperties(group, intl);
57
-
58
48
  return {
59
49
  id: group.id,
60
50
  type: GroupType,
@@ -62,10 +52,8 @@ var transformRecommendation = function transformRecommendation(item, intl) {
62
52
  lozenge: _lozenge
63
53
  };
64
54
  }
65
-
66
55
  return;
67
56
  };
68
-
69
57
  export default (function (recommendations, intl) {
70
58
  return (recommendations || []).map(function (item) {
71
59
  return transformRecommendation(item, intl);
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "name": "@atlaskit/smart-hooks",
3
- "version": "0.1.7",
3
+ "version": "0.1.8",
4
4
  "sideEffects": false
5
5
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atlaskit/smart-hooks",
3
- "version": "0.1.7",
3
+ "version": "0.1.8",
4
4
  "publishConfig": {
5
5
  "registry": "https://registry.npmjs.org/"
6
6
  },
@@ -19,11 +19,11 @@
19
19
  },
20
20
  "dependencies": {
21
21
  "@atlaskit/analytics-gas-types": "^5.0.5",
22
- "@atlaskit/analytics-listeners": "^8.3.0",
23
- "@atlaskit/analytics-next": "^8.0.0",
22
+ "@atlaskit/analytics-listeners": "^8.5.0",
23
+ "@atlaskit/analytics-next": "^9.0.0",
24
24
  "@atlaskit/smart-common": "^0.1.0",
25
25
  "@atlaskit/ufo": "^0.1.0",
26
- "@atlaskit/user-picker": "^10.0.0",
26
+ "@atlaskit/user-picker": "^10.1.0",
27
27
  "@babel/runtime": "^7.0.0",
28
28
  "lodash": "^4.17.21",
29
29
  "memoize-one": "^6.0.0",
@@ -68,9 +68,11 @@
68
68
  "analytics": [
69
69
  "analytics-next"
70
70
  ],
71
+ "design-tokens": [
72
+ "color"
73
+ ],
71
74
  "theming": [
72
- "react-context",
73
- "tokens"
75
+ "react-context"
74
76
  ],
75
77
  "ui-components": [
76
78
  "lite-mode"