@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.
- package/CHANGELOG.md +6 -0
- package/dist/cjs/i18n/cs.js +0 -1
- package/dist/cjs/i18n/da.js +0 -1
- package/dist/cjs/i18n/de.js +0 -1
- package/dist/cjs/i18n/en_ZZ.js +0 -1
- package/dist/cjs/i18n/es.js +0 -1
- package/dist/cjs/i18n/et.js +0 -1
- package/dist/cjs/i18n/fi.js +0 -1
- package/dist/cjs/i18n/fr.js +0 -1
- package/dist/cjs/i18n/hu.js +0 -1
- package/dist/cjs/i18n/index.js +0 -31
- package/dist/cjs/i18n/it.js +0 -1
- package/dist/cjs/i18n/ja.js +0 -1
- package/dist/cjs/i18n/ko.js +0 -1
- package/dist/cjs/i18n/nb.js +0 -1
- package/dist/cjs/i18n/nl.js +0 -1
- package/dist/cjs/i18n/pl.js +0 -1
- package/dist/cjs/i18n/pt_BR.js +0 -1
- package/dist/cjs/i18n/pt_PT.js +0 -1
- package/dist/cjs/i18n/ru.js +0 -1
- package/dist/cjs/i18n/sk.js +0 -1
- package/dist/cjs/i18n/sv.js +0 -1
- package/dist/cjs/i18n/th.js +0 -1
- package/dist/cjs/i18n/tr.js +0 -1
- package/dist/cjs/i18n/uk.js +0 -1
- package/dist/cjs/i18n/vi.js +0 -1
- package/dist/cjs/i18n/zh.js +0 -1
- package/dist/cjs/i18n/zh_TW.js +0 -1
- package/dist/cjs/index.js +0 -3
- package/dist/cjs/messages.js +0 -2
- package/dist/cjs/services/use-function-usage-tracking/index.js +8 -13
- package/dist/cjs/services/use-user-recommendations/analytics.js +9 -25
- package/dist/cjs/services/use-user-recommendations/index.js +42 -88
- package/dist/cjs/services/use-user-recommendations/ufoExperiences.js +0 -2
- package/dist/cjs/utils/transform-recommendations-to-options/index.js +0 -16
- package/dist/cjs/version.json +1 -1
- package/dist/es2019/services/use-function-usage-tracking/index.js +6 -6
- package/dist/es2019/services/use-user-recommendations/analytics.js +0 -2
- package/dist/es2019/services/use-user-recommendations/index.js +16 -18
- package/dist/es2019/utils/transform-recommendations-to-options/index.js +0 -10
- package/dist/es2019/version.json +1 -1
- package/dist/esm/services/use-function-usage-tracking/index.js +8 -9
- package/dist/esm/services/use-user-recommendations/analytics.js +9 -14
- package/dist/esm/services/use-user-recommendations/index.js +42 -68
- package/dist/esm/utils/transform-recommendations-to-options/index.js +0 -12
- package/dist/esm/version.json +1 -1
- 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
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
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
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
49
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
50
|
+
recommendations = _useState2[0],
|
|
51
|
+
setRecommendations = _useState2[1];
|
|
58
52
|
var _useState3 = useState(false),
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
53
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
|
54
|
+
isLoading = _useState4[0],
|
|
55
|
+
setIsLoading = _useState4[1];
|
|
63
56
|
var _useState5 = useState(),
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
57
|
+
_useState6 = _slicedToArray(_useState5, 2),
|
|
58
|
+
error = _useState6[0],
|
|
59
|
+
setError = _useState6[1];
|
|
68
60
|
var _useState7 = useState(function () {
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
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
|
-
|
|
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);
|
|
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
|
-
}
|
|
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();
|
|
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);
|
|
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
|
-
|
|
209
|
-
|
|
210
|
-
|
|
185
|
+
isOnInputChangeUsed = _useFunctionUsageTrac.isUsed,
|
|
186
|
+
usageTrackedOnInputChange = _useFunctionUsageTrac.trackingFunction;
|
|
211
187
|
var _useFunctionUsageTrac2 = useFunctionUsageTracking(onUserSelect),
|
|
212
|
-
|
|
213
|
-
|
|
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);
|
package/dist/esm/version.json
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@atlaskit/smart-hooks",
|
|
3
|
-
"version": "0.1.
|
|
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.
|
|
23
|
-
"@atlaskit/analytics-next": "^
|
|
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.
|
|
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"
|