@atlaskit/teams-public 0.50.1 → 0.50.2

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,14 @@
1
1
  # @atlaskit/teams-public
2
2
 
3
+ ## 0.50.2
4
+
5
+ ### Patch Changes
6
+
7
+ - [#193176](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/pull-requests/193176)
8
+ [`99ab921c9d13f`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/99ab921c9d13f) -
9
+ Update requested containers to remove search params on success/failure
10
+ - Updated dependencies
11
+
3
12
  ## 0.50.1
4
13
 
5
14
  ### Patch Changes
@@ -202,6 +202,7 @@ function useRequestedContainers(_ref) {
202
202
  return _ref6.apply(this, arguments);
203
203
  };
204
204
  }();
205
+ (0, _utils.removeRequestedContainersFromUrl)();
205
206
  onRequestedContainerTimeout(tryAgainCountRef.current === 0 ? createTryAgainFlag : createContactSupportFlag);
206
207
  }, [cloudId, formatMessage, onRequestedContainerTimeout, refetchTeamContainers, requestedContainers, teamId]);
207
208
  var _useAsyncPolling = (0, _utils.useAsyncPolling)(checkContainers, {
@@ -227,6 +228,7 @@ function useRequestedContainers(_ref) {
227
228
  }
228
229
  var containerCount = requestedContainers.length;
229
230
  if (isPolling && containerCount === 0) {
231
+ (0, _utils.removeRequestedContainersFromUrl)();
230
232
  stopPolling();
231
233
  return;
232
234
  }
@@ -9,6 +9,7 @@ exports.containerDisplayName = containerDisplayName;
9
9
  exports.containersEqual = containersEqual;
10
10
  exports.convertContainerToType = convertContainerToType;
11
11
  exports.getRequestedContainersFromUrl = getRequestedContainersFromUrl;
12
+ exports.removeRequestedContainersFromUrl = removeRequestedContainersFromUrl;
12
13
  exports.useAsyncPolling = useAsyncPolling;
13
14
  exports.userCanAccessFeature = userCanAccessFeature;
14
15
  var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
@@ -26,13 +27,14 @@ var CONTAINER_HUMAN_NAMES = {
26
27
  JiraProject: 'Jira project',
27
28
  LoomSpace: 'Loom space'
28
29
  };
30
+ var SEARCH_PARAM_NAME = 'requestedContainers';
29
31
  function containersEqual(arr1, arr2) {
30
32
  return JSON.stringify((0, _toConsumableArray2.default)(arr1).sort()) === JSON.stringify((0, _toConsumableArray2.default)(arr2).sort());
31
33
  }
32
34
  function getRequestedContainersFromUrl() {
33
35
  var _searchParams$get;
34
36
  var searchParams = new URLSearchParams(window.location.search);
35
- var values = ((_searchParams$get = searchParams.get('requestedContainers')) === null || _searchParams$get === void 0 ? void 0 : _searchParams$get.split(',').filter(Boolean)) || [];
37
+ var values = ((_searchParams$get = searchParams.get(SEARCH_PARAM_NAME)) === null || _searchParams$get === void 0 ? void 0 : _searchParams$get.split(',').filter(Boolean)) || [];
36
38
  var containers = values.filter(function (value) {
37
39
  return Object.values(_types.ContainerType).includes(value);
38
40
  }).map(function (value) {
@@ -43,6 +45,11 @@ function getRequestedContainersFromUrl() {
43
45
  }
44
46
  return userCanAccessFeature() ? containers : [];
45
47
  }
48
+ function removeRequestedContainersFromUrl() {
49
+ var searchParams = new URLSearchParams(window.location.search);
50
+ searchParams.delete(SEARCH_PARAM_NAME);
51
+ window.history.replaceState({}, '', "".concat(window.location.pathname, "?").concat(searchParams.toString()));
52
+ }
46
53
  function containerDisplayName(container) {
47
54
  return CONTAINER_HUMAN_NAMES[container];
48
55
  }
@@ -4,7 +4,7 @@ import LinkExternalIcon from '@atlaskit/icon/core/link-external';
4
4
  import { Flex } from '@atlaskit/primitives/compiled';
5
5
  import { HttpError, teamsClient } from '@atlaskit/teams-client';
6
6
  import { useTeamContainers } from '../use-team-containers';
7
- import { containerDisplayName, containersEqual, convertContainerToType, getRequestedContainersFromUrl, POLLING_INTERVAL, useAsyncPolling, userCanAccessFeature } from './utils';
7
+ import { containerDisplayName, containersEqual, convertContainerToType, getRequestedContainersFromUrl, POLLING_INTERVAL, removeRequestedContainersFromUrl, useAsyncPolling, userCanAccessFeature } from './utils';
8
8
  /**
9
9
  * Hook to track and poll for requested product containers (such as a Jira Project).
10
10
  * The initial list of requested containers is derived from the URL parameters, however it can be updated based on user interactions.
@@ -132,6 +132,7 @@ function useRequestedContainers({
132
132
  setIsTryingAgain(false);
133
133
  }
134
134
  };
135
+ removeRequestedContainersFromUrl();
135
136
  onRequestedContainerTimeout(tryAgainCountRef.current === 0 ? createTryAgainFlag : createContactSupportFlag);
136
137
  }, [cloudId, formatMessage, onRequestedContainerTimeout, refetchTeamContainers, requestedContainers, teamId]);
137
138
  const {
@@ -158,6 +159,7 @@ function useRequestedContainers({
158
159
  }
159
160
  const containerCount = requestedContainers.length;
160
161
  if (isPolling && containerCount === 0) {
162
+ removeRequestedContainersFromUrl();
161
163
  stopPolling();
162
164
  return;
163
165
  }
@@ -12,19 +12,25 @@ const CONTAINER_HUMAN_NAMES = {
12
12
  JiraProject: 'Jira project',
13
13
  LoomSpace: 'Loom space'
14
14
  };
15
+ const SEARCH_PARAM_NAME = 'requestedContainers';
15
16
  function containersEqual(arr1, arr2) {
16
17
  return JSON.stringify([...arr1].sort()) === JSON.stringify([...arr2].sort());
17
18
  }
18
19
  function getRequestedContainersFromUrl() {
19
20
  var _searchParams$get;
20
21
  const searchParams = new URLSearchParams(window.location.search);
21
- const values = ((_searchParams$get = searchParams.get('requestedContainers')) === null || _searchParams$get === void 0 ? void 0 : _searchParams$get.split(',').filter(Boolean)) || [];
22
+ const values = ((_searchParams$get = searchParams.get(SEARCH_PARAM_NAME)) === null || _searchParams$get === void 0 ? void 0 : _searchParams$get.split(',').filter(Boolean)) || [];
22
23
  const containers = values.filter(value => Object.values(ContainerType).includes(value)).map(value => CONTAINER_MAP[value]);
23
24
  if (containers.length === 0) {
24
25
  return [];
25
26
  }
26
27
  return userCanAccessFeature() ? containers : [];
27
28
  }
29
+ function removeRequestedContainersFromUrl() {
30
+ const searchParams = new URLSearchParams(window.location.search);
31
+ searchParams.delete(SEARCH_PARAM_NAME);
32
+ window.history.replaceState({}, '', `${window.location.pathname}?${searchParams.toString()}`);
33
+ }
28
34
  function containerDisplayName(container) {
29
35
  return CONTAINER_HUMAN_NAMES[container];
30
36
  }
@@ -125,4 +131,4 @@ function useAsyncPolling(callback, {
125
131
  hasTimedOut
126
132
  };
127
133
  }
128
- export { useAsyncPolling, POLLING_INTERVAL, POLLING_DURATION, containersEqual, getRequestedContainersFromUrl, containerDisplayName, CONTAINER_MAP, userCanAccessFeature, convertContainerToType };
134
+ export { useAsyncPolling, POLLING_INTERVAL, POLLING_DURATION, containersEqual, getRequestedContainersFromUrl, containerDisplayName, CONTAINER_MAP, userCanAccessFeature, convertContainerToType, removeRequestedContainersFromUrl };
@@ -7,7 +7,7 @@ import LinkExternalIcon from '@atlaskit/icon/core/link-external';
7
7
  import { Flex } from '@atlaskit/primitives/compiled';
8
8
  import { HttpError, teamsClient } from '@atlaskit/teams-client';
9
9
  import { useTeamContainers } from '../use-team-containers';
10
- import { containerDisplayName, containersEqual, convertContainerToType, getRequestedContainersFromUrl, POLLING_INTERVAL, useAsyncPolling, userCanAccessFeature } from './utils';
10
+ import { containerDisplayName, containersEqual, convertContainerToType, getRequestedContainersFromUrl, POLLING_INTERVAL, removeRequestedContainersFromUrl, useAsyncPolling, userCanAccessFeature } from './utils';
11
11
  /**
12
12
  * Hook to track and poll for requested product containers (such as a Jira Project).
13
13
  * The initial list of requested containers is derived from the URL parameters, however it can be updated based on user interactions.
@@ -193,6 +193,7 @@ function useRequestedContainers(_ref) {
193
193
  return _ref6.apply(this, arguments);
194
194
  };
195
195
  }();
196
+ removeRequestedContainersFromUrl();
196
197
  onRequestedContainerTimeout(tryAgainCountRef.current === 0 ? createTryAgainFlag : createContactSupportFlag);
197
198
  }, [cloudId, formatMessage, onRequestedContainerTimeout, refetchTeamContainers, requestedContainers, teamId]);
198
199
  var _useAsyncPolling = useAsyncPolling(checkContainers, {
@@ -218,6 +219,7 @@ function useRequestedContainers(_ref) {
218
219
  }
219
220
  var containerCount = requestedContainers.length;
220
221
  if (isPolling && containerCount === 0) {
222
+ removeRequestedContainersFromUrl();
221
223
  stopPolling();
222
224
  return;
223
225
  }
@@ -13,13 +13,14 @@ var CONTAINER_HUMAN_NAMES = {
13
13
  JiraProject: 'Jira project',
14
14
  LoomSpace: 'Loom space'
15
15
  };
16
+ var SEARCH_PARAM_NAME = 'requestedContainers';
16
17
  function containersEqual(arr1, arr2) {
17
18
  return JSON.stringify(_toConsumableArray(arr1).sort()) === JSON.stringify(_toConsumableArray(arr2).sort());
18
19
  }
19
20
  function getRequestedContainersFromUrl() {
20
21
  var _searchParams$get;
21
22
  var searchParams = new URLSearchParams(window.location.search);
22
- var values = ((_searchParams$get = searchParams.get('requestedContainers')) === null || _searchParams$get === void 0 ? void 0 : _searchParams$get.split(',').filter(Boolean)) || [];
23
+ var values = ((_searchParams$get = searchParams.get(SEARCH_PARAM_NAME)) === null || _searchParams$get === void 0 ? void 0 : _searchParams$get.split(',').filter(Boolean)) || [];
23
24
  var containers = values.filter(function (value) {
24
25
  return Object.values(ContainerType).includes(value);
25
26
  }).map(function (value) {
@@ -30,6 +31,11 @@ function getRequestedContainersFromUrl() {
30
31
  }
31
32
  return userCanAccessFeature() ? containers : [];
32
33
  }
34
+ function removeRequestedContainersFromUrl() {
35
+ var searchParams = new URLSearchParams(window.location.search);
36
+ searchParams.delete(SEARCH_PARAM_NAME);
37
+ window.history.replaceState({}, '', "".concat(window.location.pathname, "?").concat(searchParams.toString()));
38
+ }
33
39
  function containerDisplayName(container) {
34
40
  return CONTAINER_HUMAN_NAMES[container];
35
41
  }
@@ -152,4 +158,4 @@ function useAsyncPolling(callback) {
152
158
  hasTimedOut: hasTimedOut
153
159
  };
154
160
  }
155
- export { useAsyncPolling, POLLING_INTERVAL, POLLING_DURATION, containersEqual, getRequestedContainersFromUrl, containerDisplayName, CONTAINER_MAP, userCanAccessFeature, convertContainerToType };
161
+ export { useAsyncPolling, POLLING_INTERVAL, POLLING_DURATION, containersEqual, getRequestedContainersFromUrl, containerDisplayName, CONTAINER_MAP, userCanAccessFeature, convertContainerToType, removeRequestedContainersFromUrl };
@@ -3,6 +3,7 @@ import { type ContainerTypes } from '../../../common/types';
3
3
  declare const CONTAINER_MAP: Record<ContainerType, ContainerTypes>;
4
4
  declare function containersEqual<T>(arr1: T[], arr2: T[]): boolean;
5
5
  declare function getRequestedContainersFromUrl(): ContainerTypes[];
6
+ declare function removeRequestedContainersFromUrl(): void;
6
7
  declare function containerDisplayName(container: ContainerTypes): string;
7
8
  declare function convertContainerToType(container: ContainerTypes): ContainerType | null;
8
9
  declare function userCanAccessFeature(): boolean;
@@ -31,4 +32,4 @@ declare function useAsyncPolling(callback: () => Promise<void> | void, { onTimeo
31
32
  isPolling: boolean;
32
33
  hasTimedOut: boolean;
33
34
  };
34
- export { useAsyncPolling, POLLING_INTERVAL, POLLING_DURATION, containersEqual, getRequestedContainersFromUrl, containerDisplayName, CONTAINER_MAP, userCanAccessFeature, convertContainerToType, };
35
+ export { useAsyncPolling, POLLING_INTERVAL, POLLING_DURATION, containersEqual, getRequestedContainersFromUrl, containerDisplayName, CONTAINER_MAP, userCanAccessFeature, convertContainerToType, removeRequestedContainersFromUrl, };
@@ -3,6 +3,7 @@ import { type ContainerTypes } from '../../../common/types';
3
3
  declare const CONTAINER_MAP: Record<ContainerType, ContainerTypes>;
4
4
  declare function containersEqual<T>(arr1: T[], arr2: T[]): boolean;
5
5
  declare function getRequestedContainersFromUrl(): ContainerTypes[];
6
+ declare function removeRequestedContainersFromUrl(): void;
6
7
  declare function containerDisplayName(container: ContainerTypes): string;
7
8
  declare function convertContainerToType(container: ContainerTypes): ContainerType | null;
8
9
  declare function userCanAccessFeature(): boolean;
@@ -31,4 +32,4 @@ declare function useAsyncPolling(callback: () => Promise<void> | void, { onTimeo
31
32
  isPolling: boolean;
32
33
  hasTimedOut: boolean;
33
34
  };
34
- export { useAsyncPolling, POLLING_INTERVAL, POLLING_DURATION, containersEqual, getRequestedContainersFromUrl, containerDisplayName, CONTAINER_MAP, userCanAccessFeature, convertContainerToType, };
35
+ export { useAsyncPolling, POLLING_INTERVAL, POLLING_DURATION, containersEqual, getRequestedContainersFromUrl, containerDisplayName, CONTAINER_MAP, userCanAccessFeature, convertContainerToType, removeRequestedContainersFromUrl, };
package/package.json CHANGED
@@ -117,7 +117,7 @@
117
117
  }
118
118
  },
119
119
  "name": "@atlaskit/teams-public",
120
- "version": "0.50.1",
120
+ "version": "0.50.2",
121
121
  "description": "Public components related to teams",
122
122
  "author": "Atlassian Pty Ltd",
123
123
  "license": "Apache-2.0",