@atlaskit/user-picker 8.4.0 → 8.4.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.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # @atlaskit/user-picker
2
2
 
3
+ ## 8.4.1
4
+
5
+ ### Patch Changes
6
+
7
+ - [`22928ac80d0`](https://bitbucket.org/atlassian/atlassian-frontend/commits/22928ac80d0) - Fix: user sources would keep being fetched in a loop as long as the tooltip was displayed
8
+
3
9
  ## 8.4.0
4
10
 
5
11
  ### Minor Changes
@@ -37,10 +37,10 @@ var useUserSource = function useUserSource(accountId, shouldFetchSources, existi
37
37
  var _useContext = (0, _react.useContext)(ExusUserSourceContext),
38
38
  fetchUserSource = _useContext.fetchUserSource;
39
39
 
40
- var _useState = (0, _react.useState)(new Set(existingSources)),
40
+ var _useState = (0, _react.useState)([]),
41
41
  _useState2 = (0, _slicedToArray2.default)(_useState, 2),
42
- sources = _useState2[0],
43
- setUserSources = _useState2[1];
42
+ externalSources = _useState2[0],
43
+ setExternalSources = _useState2[1];
44
44
 
45
45
  var _useState3 = (0, _react.useState)(true),
46
46
  _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
@@ -72,26 +72,33 @@ var useUserSource = function useUserSource(accountId, shouldFetchSources, existi
72
72
  return cleanup;
73
73
  }
74
74
 
75
- if (isMounted) {
76
- fetchUserSource(accountId, abortController === null || abortController === void 0 ? void 0 : abortController.signal).then(function (externalSources) {
77
- setLoading(false);
78
- var externalSourceTypes = externalSources.map(function (source) {
79
- return source.sourceType;
80
- });
81
- setUserSources(new Set([].concat((0, _toConsumableArray2.default)(sources), (0, _toConsumableArray2.default)(externalSourceTypes))));
82
- }).catch(function (error) {
83
- setLoading(false);
84
- setError(error);
75
+ fetchUserSource(accountId, abortController === null || abortController === void 0 ? void 0 : abortController.signal).then(function (externalSources) {
76
+ if (!isMounted) {
77
+ return;
78
+ }
79
+
80
+ setLoading(false);
81
+ var externalSourceTypes = externalSources.map(function (source) {
82
+ return source.sourceType;
85
83
  });
86
- }
84
+ setExternalSources(externalSourceTypes);
85
+ }).catch(function (error) {
86
+ if (!isMounted) {
87
+ return;
88
+ }
87
89
 
90
+ setLoading(false);
91
+ setError(error);
92
+ });
88
93
  return cleanup;
89
- }, [fetchUserSource, accountId, sources, abortController, shouldFetchSources]);
90
- return {
91
- sources: Array.from(sources),
92
- loading: loading,
93
- error: error
94
- };
94
+ }, [fetchUserSource, accountId, abortController, shouldFetchSources]);
95
+ return (0, _react.useMemo)(function () {
96
+ return {
97
+ sources: Array.from(new Set([].concat((0, _toConsumableArray2.default)(existingSources !== null && existingSources !== void 0 ? existingSources : []), (0, _toConsumableArray2.default)(externalSources)))),
98
+ loading: loading,
99
+ error: error
100
+ };
101
+ }, [error, existingSources, externalSources, loading]);
95
102
  };
96
103
 
97
104
  exports.useUserSource = useUserSource;
@@ -15,8 +15,7 @@ var ExternalUserSourcesContainer = function ExternalUserSourcesContainer(_ref) {
15
15
  var children = _ref.children,
16
16
  accountId = _ref.accountId,
17
17
  shouldFetchSources = _ref.shouldFetchSources,
18
- _ref$initialSources = _ref.initialSources,
19
- initialSources = _ref$initialSources === void 0 ? [] : _ref$initialSources;
18
+ initialSources = _ref.initialSources;
20
19
 
21
20
  var _useUserSource = (0, _UserSourceProvider.useUserSource)(accountId, shouldFetchSources, initialSources),
22
21
  sources = _useUserSource.sources,
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "name": "@atlaskit/user-picker",
3
- "version": "8.4.0",
3
+ "version": "8.4.1",
4
4
  "sideEffects": false
5
5
  }
@@ -12,7 +12,7 @@ export const useUserSource = (accountId, shouldFetchSources, existingSources) =>
12
12
  const {
13
13
  fetchUserSource
14
14
  } = useContext(ExusUserSourceContext);
15
- const [sources, setUserSources] = useState(new Set(existingSources));
15
+ const [externalSources, setExternalSources] = useState([]);
16
16
  const [loading, setLoading] = useState(true);
17
17
  const [error, setError] = useState(null);
18
18
  const abortController = useMemo(() => {
@@ -35,22 +35,27 @@ export const useUserSource = (accountId, shouldFetchSources, existingSources) =>
35
35
  return cleanup;
36
36
  }
37
37
 
38
- if (isMounted) {
39
- fetchUserSource(accountId, abortController === null || abortController === void 0 ? void 0 : abortController.signal).then(externalSources => {
40
- setLoading(false);
41
- const externalSourceTypes = externalSources.map(source => source.sourceType);
42
- setUserSources(new Set([...sources, ...externalSourceTypes]));
43
- }).catch(error => {
44
- setLoading(false);
45
- setError(error);
46
- });
47
- }
38
+ fetchUserSource(accountId, abortController === null || abortController === void 0 ? void 0 : abortController.signal).then(externalSources => {
39
+ if (!isMounted) {
40
+ return;
41
+ }
42
+
43
+ setLoading(false);
44
+ const externalSourceTypes = externalSources.map(source => source.sourceType);
45
+ setExternalSources(externalSourceTypes);
46
+ }).catch(error => {
47
+ if (!isMounted) {
48
+ return;
49
+ }
48
50
 
51
+ setLoading(false);
52
+ setError(error);
53
+ });
49
54
  return cleanup;
50
- }, [fetchUserSource, accountId, sources, abortController, shouldFetchSources]);
51
- return {
52
- sources: Array.from(sources),
55
+ }, [fetchUserSource, accountId, abortController, shouldFetchSources]);
56
+ return useMemo(() => ({
57
+ sources: Array.from(new Set([...(existingSources !== null && existingSources !== void 0 ? existingSources : []), ...externalSources])),
53
58
  loading,
54
59
  error
55
- };
60
+ }), [error, existingSources, externalSources, loading]);
56
61
  };
@@ -4,7 +4,7 @@ export const ExternalUserSourcesContainer = ({
4
4
  children,
5
5
  accountId,
6
6
  shouldFetchSources,
7
- initialSources = []
7
+ initialSources
8
8
  }) => {
9
9
  const {
10
10
  sources,
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "name": "@atlaskit/user-picker",
3
- "version": "8.4.0",
3
+ "version": "8.4.1",
4
4
  "sideEffects": false
5
5
  }
@@ -15,10 +15,10 @@ export var useUserSource = function useUserSource(accountId, shouldFetchSources,
15
15
  var _useContext = useContext(ExusUserSourceContext),
16
16
  fetchUserSource = _useContext.fetchUserSource;
17
17
 
18
- var _useState = useState(new Set(existingSources)),
18
+ var _useState = useState([]),
19
19
  _useState2 = _slicedToArray(_useState, 2),
20
- sources = _useState2[0],
21
- setUserSources = _useState2[1];
20
+ externalSources = _useState2[0],
21
+ setExternalSources = _useState2[1];
22
22
 
23
23
  var _useState3 = useState(true),
24
24
  _useState4 = _slicedToArray(_useState3, 2),
@@ -50,24 +50,31 @@ export var useUserSource = function useUserSource(accountId, shouldFetchSources,
50
50
  return cleanup;
51
51
  }
52
52
 
53
- if (isMounted) {
54
- fetchUserSource(accountId, abortController === null || abortController === void 0 ? void 0 : abortController.signal).then(function (externalSources) {
55
- setLoading(false);
56
- var externalSourceTypes = externalSources.map(function (source) {
57
- return source.sourceType;
58
- });
59
- setUserSources(new Set([].concat(_toConsumableArray(sources), _toConsumableArray(externalSourceTypes))));
60
- }).catch(function (error) {
61
- setLoading(false);
62
- setError(error);
53
+ fetchUserSource(accountId, abortController === null || abortController === void 0 ? void 0 : abortController.signal).then(function (externalSources) {
54
+ if (!isMounted) {
55
+ return;
56
+ }
57
+
58
+ setLoading(false);
59
+ var externalSourceTypes = externalSources.map(function (source) {
60
+ return source.sourceType;
63
61
  });
64
- }
62
+ setExternalSources(externalSourceTypes);
63
+ }).catch(function (error) {
64
+ if (!isMounted) {
65
+ return;
66
+ }
65
67
 
68
+ setLoading(false);
69
+ setError(error);
70
+ });
66
71
  return cleanup;
67
- }, [fetchUserSource, accountId, sources, abortController, shouldFetchSources]);
68
- return {
69
- sources: Array.from(sources),
70
- loading: loading,
71
- error: error
72
- };
72
+ }, [fetchUserSource, accountId, abortController, shouldFetchSources]);
73
+ return useMemo(function () {
74
+ return {
75
+ sources: Array.from(new Set([].concat(_toConsumableArray(existingSources !== null && existingSources !== void 0 ? existingSources : []), _toConsumableArray(externalSources)))),
76
+ loading: loading,
77
+ error: error
78
+ };
79
+ }, [error, existingSources, externalSources, loading]);
73
80
  };
@@ -4,8 +4,7 @@ export var ExternalUserSourcesContainer = function ExternalUserSourcesContainer(
4
4
  var children = _ref.children,
5
5
  accountId = _ref.accountId,
6
6
  shouldFetchSources = _ref.shouldFetchSources,
7
- _ref$initialSources = _ref.initialSources,
8
- initialSources = _ref$initialSources === void 0 ? [] : _ref$initialSources;
7
+ initialSources = _ref.initialSources;
9
8
 
10
9
  var _useUserSource = useUserSource(accountId, shouldFetchSources, initialSources),
11
10
  sources = _useUserSource.sources,
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "name": "@atlaskit/user-picker",
3
- "version": "8.4.0",
3
+ "version": "8.4.1",
4
4
  "sideEffects": false
5
5
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atlaskit/user-picker",
3
- "version": "8.4.0",
3
+ "version": "8.4.1",
4
4
  "description": "Fabric component for display a dropdown to select a user from",
5
5
  "publishConfig": {
6
6
  "registry": "https://registry.npmjs.org/"