@atlaskit/teams-public 0.50.0 → 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.
Files changed (40) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/dist/cjs/controllers/hooks/use-requested-container/index.js +2 -0
  3. package/dist/cjs/controllers/hooks/use-requested-container/utils.js +9 -4
  4. package/dist/cjs/i18n/en.js +4 -1
  5. package/dist/cjs/i18n/en_GB.js +4 -1
  6. package/dist/cjs/i18n/en_ZZ.js +4 -1
  7. package/dist/cjs/i18n/fr.js +4 -1
  8. package/dist/cjs/i18n/ru.js +4 -1
  9. package/dist/cjs/i18n/uk.js +4 -1
  10. package/dist/es2019/controllers/hooks/use-requested-container/index.js +3 -1
  11. package/dist/es2019/controllers/hooks/use-requested-container/utils.js +9 -5
  12. package/dist/es2019/i18n/en.js +4 -1
  13. package/dist/es2019/i18n/en_GB.js +4 -1
  14. package/dist/es2019/i18n/en_ZZ.js +4 -1
  15. package/dist/es2019/i18n/fr.js +4 -1
  16. package/dist/es2019/i18n/ru.js +4 -1
  17. package/dist/es2019/i18n/uk.js +4 -1
  18. package/dist/esm/controllers/hooks/use-requested-container/index.js +3 -1
  19. package/dist/esm/controllers/hooks/use-requested-container/utils.js +9 -5
  20. package/dist/esm/i18n/en.js +4 -1
  21. package/dist/esm/i18n/en_GB.js +4 -1
  22. package/dist/esm/i18n/en_ZZ.js +4 -1
  23. package/dist/esm/i18n/fr.js +4 -1
  24. package/dist/esm/i18n/ru.js +4 -1
  25. package/dist/esm/i18n/uk.js +4 -1
  26. package/dist/types/controllers/hooks/use-requested-container/utils.d.ts +2 -1
  27. package/dist/types/i18n/en.d.ts +3 -0
  28. package/dist/types/i18n/en_GB.d.ts +3 -0
  29. package/dist/types/i18n/en_ZZ.d.ts +3 -0
  30. package/dist/types/i18n/fr.d.ts +3 -0
  31. package/dist/types/i18n/ru.d.ts +3 -0
  32. package/dist/types/i18n/uk.d.ts +3 -0
  33. package/dist/types-ts4.5/controllers/hooks/use-requested-container/utils.d.ts +2 -1
  34. package/dist/types-ts4.5/i18n/en.d.ts +3 -0
  35. package/dist/types-ts4.5/i18n/en_GB.d.ts +3 -0
  36. package/dist/types-ts4.5/i18n/en_ZZ.d.ts +3 -0
  37. package/dist/types-ts4.5/i18n/fr.d.ts +3 -0
  38. package/dist/types-ts4.5/i18n/ru.d.ts +3 -0
  39. package/dist/types-ts4.5/i18n/uk.d.ts +3 -0
  40. package/package.json +3 -3
package/CHANGELOG.md CHANGED
@@ -1,5 +1,23 @@
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
+
12
+ ## 0.50.1
13
+
14
+ ### Patch Changes
15
+
16
+ - [#190537](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/pull-requests/190537)
17
+ [`cc7e5ed8bb6e1`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/cc7e5ed8bb6e1) -
18
+ Update the polling interval for the requested containers hook
19
+ - Updated dependencies
20
+
3
21
  ## 0.50.0
4
22
 
5
23
  ### Minor 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
  }
@@ -65,10 +72,8 @@ function userCanAccessFeature() {
65
72
  }
66
73
  return false;
67
74
  }
68
-
69
- //@todo: PTC-12250 update these to P90 value
70
75
  var POLLING_INTERVAL = exports.POLLING_INTERVAL = 1000;
71
- var POLLING_DURATION = exports.POLLING_DURATION = 10000;
76
+ var POLLING_DURATION = exports.POLLING_DURATION = 15000;
72
77
 
73
78
  /**
74
79
  * Hook for polling an async callback at a fixed interval, with timeout and pending state management.
@@ -35,5 +35,8 @@ var _default = exports.default = {
35
35
  'ptc-directory.team-profile-page.team-containers.show-more': 'Show more',
36
36
  'ptc-directory.team-profile-page.team-containers.space-container-text': 'space',
37
37
  'ptc.team-profile-page.team-containers.empty-state.description': 'Your team can link their Jira projects, Confluence spaces here to show where they work',
38
- 'ptc.team-profile-page.team-containers.empty-state.title': 'Add the places your team works'
38
+ 'ptc.team-profile-page.team-containers.empty-state.title': 'Add the places your team works',
39
+ 'teams-public..team-containers.timeout-description': 'Something went wrong. Verify your connection and retry.',
40
+ 'teams-public.team-containers.timeout-action': 'Try again',
41
+ 'teams-public.team-containers.timeout-title': 'We’re couldn’t connect your spaces'
39
42
  };
@@ -35,5 +35,8 @@ var _default = exports.default = {
35
35
  'ptc-directory.team-profile-page.team-containers.show-more': 'Show more',
36
36
  'ptc-directory.team-profile-page.team-containers.space-container-text': 'space',
37
37
  'ptc.team-profile-page.team-containers.empty-state.description': 'Your team can link their Jira projects, Confluence spaces here to show where they work',
38
- 'ptc.team-profile-page.team-containers.empty-state.title': 'Add the places your team works'
38
+ 'ptc.team-profile-page.team-containers.empty-state.title': 'Add the places your team works',
39
+ 'teams-public..team-containers.timeout-description': 'Something went wrong. Verify your connection and retry.',
40
+ 'teams-public.team-containers.timeout-action': 'Try again',
41
+ 'teams-public.team-containers.timeout-title': 'We’re couldn’t connect your spaces'
39
42
  };
@@ -35,5 +35,8 @@ var _default = exports.default = {
35
35
  'ptc-directory.team-profile-page.team-containers.show-more': '⁣⁢Show more⁡؜؜⁠‍⁠⁠⁡‌؜⁣⁤',
36
36
  'ptc-directory.team-profile-page.team-containers.space-container-text': '⁣⁢space‍⁠⁠‍⁡؜‍⁠⁣⁤',
37
37
  'ptc.team-profile-page.team-containers.empty-state.description': '⁣⁢Your team can link their Jira projects, Confluence spaces here to show where they work‍⁡⁡⁡‌‍⁠‌⁡⁣⁤',
38
- 'ptc.team-profile-page.team-containers.empty-state.title': '⁣⁢Add the places your team works؜⁡؜‌⁠⁡؜⁣⁤'
38
+ 'ptc.team-profile-page.team-containers.empty-state.title': '⁣⁢Add the places your team works؜⁡؜‌⁠⁡؜⁣⁤',
39
+ 'teams-public..team-containers.timeout-description': '⁣⁢Something went wrong. Verify your connection and retry.‌؜؜⁡⁠؜‍⁠⁠⁡⁠⁣⁤',
40
+ 'teams-public.team-containers.timeout-action': '⁣⁢Try again‌‍⁡‌‍⁡‍⁡‌⁣⁤',
41
+ 'teams-public.team-containers.timeout-title': '⁣⁢We’re couldn’t connect your spaces‍⁠‍⁡‍؜؜⁣⁤'
39
42
  };
@@ -33,5 +33,8 @@ var _default = exports.default = {
33
33
  'ptc-directory.team-profile-page.team-containers.show-less': 'Afficher moins',
34
34
  'ptc-directory.team-profile-page.team-containers.show-more': 'Afficher plus',
35
35
  'ptc.team-profile-page.team-containers.empty-state.description': 'Votre équipe peut associer ses projets Jira et ses espaces Confluence ici pour indiquer où elle travaille',
36
- 'ptc.team-profile-page.team-containers.empty-state.title': 'Ajouter les lieux de travail de votre équipe'
36
+ 'ptc.team-profile-page.team-containers.empty-state.title': 'Ajouter les lieux de travail de votre équipe',
37
+ 'teams-public..team-containers.timeout-description': "Une erreur s'est produite. Vérifiez votre connection et réessayez.",
38
+ 'teams-public.team-containers.timeout-action': 'Réessayer',
39
+ 'teams-public.team-containers.timeout-title': 'Impossible de connecter vos espaces'
37
40
  };
@@ -33,5 +33,8 @@ var _default = exports.default = {
33
33
  'ptc-directory.team-profile-page.team-containers.show-less': 'Свернуть',
34
34
  'ptc-directory.team-profile-page.team-containers.show-more': 'Развернуть',
35
35
  'ptc.team-profile-page.team-containers.empty-state.description': 'Команда может разместить здесь ссылки на свои проекты Jira и разделы Confluence, чтобы показать, где она работает',
36
- 'ptc.team-profile-page.team-containers.empty-state.title': 'Добавьте места, где работает команда'
36
+ 'ptc.team-profile-page.team-containers.empty-state.title': 'Добавьте места, где работает команда',
37
+ 'teams-public..team-containers.timeout-description': 'Что-то пошло не так. Проверьте подключение и повторите попытку.',
38
+ 'teams-public.team-containers.timeout-action': 'Повторить попытку',
39
+ 'teams-public.team-containers.timeout-title': 'Не удалось подключить разделы'
37
40
  };
@@ -33,5 +33,8 @@ var _default = exports.default = {
33
33
  'ptc-directory.team-profile-page.team-containers.show-less': 'Показати менше',
34
34
  'ptc-directory.team-profile-page.team-containers.show-more': 'Показати більше',
35
35
  'ptc.team-profile-page.team-containers.empty-state.description': 'Ваша команда може зв’язати свої проєкти Jira й розділи Confluence тут, щоб відобразити, з чим вона працює',
36
- 'ptc.team-profile-page.team-containers.empty-state.title': 'Додайте місця роботи вашої команди'
36
+ 'ptc.team-profile-page.team-containers.empty-state.title': 'Додайте місця роботи вашої команди',
37
+ 'teams-public..team-containers.timeout-description': 'Сталася помилка. Перевірте з’єднання та повторіть спробу.',
38
+ 'teams-public.team-containers.timeout-action': 'Повторити спробу',
39
+ 'teams-public.team-containers.timeout-title': 'Не вдалося підключити розділи'
37
40
  };
@@ -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
  }
@@ -47,10 +53,8 @@ function userCanAccessFeature() {
47
53
  }
48
54
  return false;
49
55
  }
50
-
51
- //@todo: PTC-12250 update these to P90 value
52
56
  let POLLING_INTERVAL = 1000;
53
- let POLLING_DURATION = 10000;
57
+ let POLLING_DURATION = 15000;
54
58
 
55
59
  /**
56
60
  * Hook for polling an async callback at a fixed interval, with timeout and pending state management.
@@ -127,4 +131,4 @@ function useAsyncPolling(callback, {
127
131
  hasTimedOut
128
132
  };
129
133
  }
130
- 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 };
@@ -29,5 +29,8 @@ export default {
29
29
  'ptc-directory.team-profile-page.team-containers.show-more': 'Show more',
30
30
  'ptc-directory.team-profile-page.team-containers.space-container-text': 'space',
31
31
  'ptc.team-profile-page.team-containers.empty-state.description': 'Your team can link their Jira projects, Confluence spaces here to show where they work',
32
- 'ptc.team-profile-page.team-containers.empty-state.title': 'Add the places your team works'
32
+ 'ptc.team-profile-page.team-containers.empty-state.title': 'Add the places your team works',
33
+ 'teams-public..team-containers.timeout-description': 'Something went wrong. Verify your connection and retry.',
34
+ 'teams-public.team-containers.timeout-action': 'Try again',
35
+ 'teams-public.team-containers.timeout-title': 'We’re couldn’t connect your spaces'
33
36
  };
@@ -29,5 +29,8 @@ export default {
29
29
  'ptc-directory.team-profile-page.team-containers.show-more': 'Show more',
30
30
  'ptc-directory.team-profile-page.team-containers.space-container-text': 'space',
31
31
  'ptc.team-profile-page.team-containers.empty-state.description': 'Your team can link their Jira projects, Confluence spaces here to show where they work',
32
- 'ptc.team-profile-page.team-containers.empty-state.title': 'Add the places your team works'
32
+ 'ptc.team-profile-page.team-containers.empty-state.title': 'Add the places your team works',
33
+ 'teams-public..team-containers.timeout-description': 'Something went wrong. Verify your connection and retry.',
34
+ 'teams-public.team-containers.timeout-action': 'Try again',
35
+ 'teams-public.team-containers.timeout-title': 'We’re couldn’t connect your spaces'
33
36
  };
@@ -29,5 +29,8 @@ export default {
29
29
  'ptc-directory.team-profile-page.team-containers.show-more': '⁣⁢Show more⁡؜؜⁠‍⁠⁠⁡‌؜⁣⁤',
30
30
  'ptc-directory.team-profile-page.team-containers.space-container-text': '⁣⁢space‍⁠⁠‍⁡؜‍⁠⁣⁤',
31
31
  'ptc.team-profile-page.team-containers.empty-state.description': '⁣⁢Your team can link their Jira projects, Confluence spaces here to show where they work‍⁡⁡⁡‌‍⁠‌⁡⁣⁤',
32
- 'ptc.team-profile-page.team-containers.empty-state.title': '⁣⁢Add the places your team works؜⁡؜‌⁠⁡؜⁣⁤'
32
+ 'ptc.team-profile-page.team-containers.empty-state.title': '⁣⁢Add the places your team works؜⁡؜‌⁠⁡؜⁣⁤',
33
+ 'teams-public..team-containers.timeout-description': '⁣⁢Something went wrong. Verify your connection and retry.‌؜؜⁡⁠؜‍⁠⁠⁡⁠⁣⁤',
34
+ 'teams-public.team-containers.timeout-action': '⁣⁢Try again‌‍⁡‌‍⁡‍⁡‌⁣⁤',
35
+ 'teams-public.team-containers.timeout-title': '⁣⁢We’re couldn’t connect your spaces‍⁠‍⁡‍؜؜⁣⁤'
33
36
  };
@@ -27,5 +27,8 @@ export default {
27
27
  'ptc-directory.team-profile-page.team-containers.show-less': 'Afficher moins',
28
28
  'ptc-directory.team-profile-page.team-containers.show-more': 'Afficher plus',
29
29
  'ptc.team-profile-page.team-containers.empty-state.description': 'Votre équipe peut associer ses projets Jira et ses espaces Confluence ici pour indiquer où elle travaille',
30
- 'ptc.team-profile-page.team-containers.empty-state.title': 'Ajouter les lieux de travail de votre équipe'
30
+ 'ptc.team-profile-page.team-containers.empty-state.title': 'Ajouter les lieux de travail de votre équipe',
31
+ 'teams-public..team-containers.timeout-description': "Une erreur s'est produite. Vérifiez votre connection et réessayez.",
32
+ 'teams-public.team-containers.timeout-action': 'Réessayer',
33
+ 'teams-public.team-containers.timeout-title': 'Impossible de connecter vos espaces'
31
34
  };
@@ -27,5 +27,8 @@ export default {
27
27
  'ptc-directory.team-profile-page.team-containers.show-less': 'Свернуть',
28
28
  'ptc-directory.team-profile-page.team-containers.show-more': 'Развернуть',
29
29
  'ptc.team-profile-page.team-containers.empty-state.description': 'Команда может разместить здесь ссылки на свои проекты Jira и разделы Confluence, чтобы показать, где она работает',
30
- 'ptc.team-profile-page.team-containers.empty-state.title': 'Добавьте места, где работает команда'
30
+ 'ptc.team-profile-page.team-containers.empty-state.title': 'Добавьте места, где работает команда',
31
+ 'teams-public..team-containers.timeout-description': 'Что-то пошло не так. Проверьте подключение и повторите попытку.',
32
+ 'teams-public.team-containers.timeout-action': 'Повторить попытку',
33
+ 'teams-public.team-containers.timeout-title': 'Не удалось подключить разделы'
31
34
  };
@@ -27,5 +27,8 @@ export default {
27
27
  'ptc-directory.team-profile-page.team-containers.show-less': 'Показати менше',
28
28
  'ptc-directory.team-profile-page.team-containers.show-more': 'Показати більше',
29
29
  'ptc.team-profile-page.team-containers.empty-state.description': 'Ваша команда може зв’язати свої проєкти Jira й розділи Confluence тут, щоб відобразити, з чим вона працює',
30
- 'ptc.team-profile-page.team-containers.empty-state.title': 'Додайте місця роботи вашої команди'
30
+ 'ptc.team-profile-page.team-containers.empty-state.title': 'Додайте місця роботи вашої команди',
31
+ 'teams-public..team-containers.timeout-description': 'Сталася помилка. Перевірте з’єднання та повторіть спробу.',
32
+ 'teams-public.team-containers.timeout-action': 'Повторити спробу',
33
+ 'teams-public.team-containers.timeout-title': 'Не вдалося підключити розділи'
31
34
  };
@@ -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
  }
@@ -52,10 +58,8 @@ function userCanAccessFeature() {
52
58
  }
53
59
  return false;
54
60
  }
55
-
56
- //@todo: PTC-12250 update these to P90 value
57
61
  var POLLING_INTERVAL = 1000;
58
- var POLLING_DURATION = 10000;
62
+ var POLLING_DURATION = 15000;
59
63
 
60
64
  /**
61
65
  * Hook for polling an async callback at a fixed interval, with timeout and pending state management.
@@ -154,4 +158,4 @@ function useAsyncPolling(callback) {
154
158
  hasTimedOut: hasTimedOut
155
159
  };
156
160
  }
157
- 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 };
@@ -29,5 +29,8 @@ export default {
29
29
  'ptc-directory.team-profile-page.team-containers.show-more': 'Show more',
30
30
  'ptc-directory.team-profile-page.team-containers.space-container-text': 'space',
31
31
  'ptc.team-profile-page.team-containers.empty-state.description': 'Your team can link their Jira projects, Confluence spaces here to show where they work',
32
- 'ptc.team-profile-page.team-containers.empty-state.title': 'Add the places your team works'
32
+ 'ptc.team-profile-page.team-containers.empty-state.title': 'Add the places your team works',
33
+ 'teams-public..team-containers.timeout-description': 'Something went wrong. Verify your connection and retry.',
34
+ 'teams-public.team-containers.timeout-action': 'Try again',
35
+ 'teams-public.team-containers.timeout-title': 'We’re couldn’t connect your spaces'
33
36
  };
@@ -29,5 +29,8 @@ export default {
29
29
  'ptc-directory.team-profile-page.team-containers.show-more': 'Show more',
30
30
  'ptc-directory.team-profile-page.team-containers.space-container-text': 'space',
31
31
  'ptc.team-profile-page.team-containers.empty-state.description': 'Your team can link their Jira projects, Confluence spaces here to show where they work',
32
- 'ptc.team-profile-page.team-containers.empty-state.title': 'Add the places your team works'
32
+ 'ptc.team-profile-page.team-containers.empty-state.title': 'Add the places your team works',
33
+ 'teams-public..team-containers.timeout-description': 'Something went wrong. Verify your connection and retry.',
34
+ 'teams-public.team-containers.timeout-action': 'Try again',
35
+ 'teams-public.team-containers.timeout-title': 'We’re couldn’t connect your spaces'
33
36
  };
@@ -29,5 +29,8 @@ export default {
29
29
  'ptc-directory.team-profile-page.team-containers.show-more': '⁣⁢Show more⁡؜؜⁠‍⁠⁠⁡‌؜⁣⁤',
30
30
  'ptc-directory.team-profile-page.team-containers.space-container-text': '⁣⁢space‍⁠⁠‍⁡؜‍⁠⁣⁤',
31
31
  'ptc.team-profile-page.team-containers.empty-state.description': '⁣⁢Your team can link their Jira projects, Confluence spaces here to show where they work‍⁡⁡⁡‌‍⁠‌⁡⁣⁤',
32
- 'ptc.team-profile-page.team-containers.empty-state.title': '⁣⁢Add the places your team works؜⁡؜‌⁠⁡؜⁣⁤'
32
+ 'ptc.team-profile-page.team-containers.empty-state.title': '⁣⁢Add the places your team works؜⁡؜‌⁠⁡؜⁣⁤',
33
+ 'teams-public..team-containers.timeout-description': '⁣⁢Something went wrong. Verify your connection and retry.‌؜؜⁡⁠؜‍⁠⁠⁡⁠⁣⁤',
34
+ 'teams-public.team-containers.timeout-action': '⁣⁢Try again‌‍⁡‌‍⁡‍⁡‌⁣⁤',
35
+ 'teams-public.team-containers.timeout-title': '⁣⁢We’re couldn’t connect your spaces‍⁠‍⁡‍؜؜⁣⁤'
33
36
  };
@@ -27,5 +27,8 @@ export default {
27
27
  'ptc-directory.team-profile-page.team-containers.show-less': 'Afficher moins',
28
28
  'ptc-directory.team-profile-page.team-containers.show-more': 'Afficher plus',
29
29
  'ptc.team-profile-page.team-containers.empty-state.description': 'Votre équipe peut associer ses projets Jira et ses espaces Confluence ici pour indiquer où elle travaille',
30
- 'ptc.team-profile-page.team-containers.empty-state.title': 'Ajouter les lieux de travail de votre équipe'
30
+ 'ptc.team-profile-page.team-containers.empty-state.title': 'Ajouter les lieux de travail de votre équipe',
31
+ 'teams-public..team-containers.timeout-description': "Une erreur s'est produite. Vérifiez votre connection et réessayez.",
32
+ 'teams-public.team-containers.timeout-action': 'Réessayer',
33
+ 'teams-public.team-containers.timeout-title': 'Impossible de connecter vos espaces'
31
34
  };
@@ -27,5 +27,8 @@ export default {
27
27
  'ptc-directory.team-profile-page.team-containers.show-less': 'Свернуть',
28
28
  'ptc-directory.team-profile-page.team-containers.show-more': 'Развернуть',
29
29
  'ptc.team-profile-page.team-containers.empty-state.description': 'Команда может разместить здесь ссылки на свои проекты Jira и разделы Confluence, чтобы показать, где она работает',
30
- 'ptc.team-profile-page.team-containers.empty-state.title': 'Добавьте места, где работает команда'
30
+ 'ptc.team-profile-page.team-containers.empty-state.title': 'Добавьте места, где работает команда',
31
+ 'teams-public..team-containers.timeout-description': 'Что-то пошло не так. Проверьте подключение и повторите попытку.',
32
+ 'teams-public.team-containers.timeout-action': 'Повторить попытку',
33
+ 'teams-public.team-containers.timeout-title': 'Не удалось подключить разделы'
31
34
  };
@@ -27,5 +27,8 @@ export default {
27
27
  'ptc-directory.team-profile-page.team-containers.show-less': 'Показати менше',
28
28
  'ptc-directory.team-profile-page.team-containers.show-more': 'Показати більше',
29
29
  'ptc.team-profile-page.team-containers.empty-state.description': 'Ваша команда може зв’язати свої проєкти Jira й розділи Confluence тут, щоб відобразити, з чим вона працює',
30
- 'ptc.team-profile-page.team-containers.empty-state.title': 'Додайте місця роботи вашої команди'
30
+ 'ptc.team-profile-page.team-containers.empty-state.title': 'Додайте місця роботи вашої команди',
31
+ 'teams-public..team-containers.timeout-description': 'Сталася помилка. Перевірте з’єднання та повторіть спробу.',
32
+ 'teams-public.team-containers.timeout-action': 'Повторити спробу',
33
+ 'teams-public.team-containers.timeout-title': 'Не вдалося підключити розділи'
31
34
  };
@@ -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, };
@@ -28,5 +28,8 @@ declare const _default: {
28
28
  'ptc-directory.team-profile-page.team-containers.space-container-text': string;
29
29
  'ptc.team-profile-page.team-containers.empty-state.description': string;
30
30
  'ptc.team-profile-page.team-containers.empty-state.title': string;
31
+ 'teams-public..team-containers.timeout-description': string;
32
+ 'teams-public.team-containers.timeout-action': string;
33
+ 'teams-public.team-containers.timeout-title': string;
31
34
  };
32
35
  export default _default;
@@ -28,5 +28,8 @@ declare const _default: {
28
28
  'ptc-directory.team-profile-page.team-containers.space-container-text': string;
29
29
  'ptc.team-profile-page.team-containers.empty-state.description': string;
30
30
  'ptc.team-profile-page.team-containers.empty-state.title': string;
31
+ 'teams-public..team-containers.timeout-description': string;
32
+ 'teams-public.team-containers.timeout-action': string;
33
+ 'teams-public.team-containers.timeout-title': string;
31
34
  };
32
35
  export default _default;
@@ -28,5 +28,8 @@ declare const _default: {
28
28
  'ptc-directory.team-profile-page.team-containers.space-container-text': string;
29
29
  'ptc.team-profile-page.team-containers.empty-state.description': string;
30
30
  'ptc.team-profile-page.team-containers.empty-state.title': string;
31
+ 'teams-public..team-containers.timeout-description': string;
32
+ 'teams-public.team-containers.timeout-action': string;
33
+ 'teams-public.team-containers.timeout-title': string;
31
34
  };
32
35
  export default _default;
@@ -26,5 +26,8 @@ declare const _default: {
26
26
  'ptc-directory.team-profile-page.team-containers.show-more': string;
27
27
  'ptc.team-profile-page.team-containers.empty-state.description': string;
28
28
  'ptc.team-profile-page.team-containers.empty-state.title': string;
29
+ 'teams-public..team-containers.timeout-description': string;
30
+ 'teams-public.team-containers.timeout-action': string;
31
+ 'teams-public.team-containers.timeout-title': string;
29
32
  };
30
33
  export default _default;
@@ -26,5 +26,8 @@ declare const _default: {
26
26
  'ptc-directory.team-profile-page.team-containers.show-more': string;
27
27
  'ptc.team-profile-page.team-containers.empty-state.description': string;
28
28
  'ptc.team-profile-page.team-containers.empty-state.title': string;
29
+ 'teams-public..team-containers.timeout-description': string;
30
+ 'teams-public.team-containers.timeout-action': string;
31
+ 'teams-public.team-containers.timeout-title': string;
29
32
  };
30
33
  export default _default;
@@ -26,5 +26,8 @@ declare const _default: {
26
26
  'ptc-directory.team-profile-page.team-containers.show-more': string;
27
27
  'ptc.team-profile-page.team-containers.empty-state.description': string;
28
28
  'ptc.team-profile-page.team-containers.empty-state.title': string;
29
+ 'teams-public..team-containers.timeout-description': string;
30
+ 'teams-public.team-containers.timeout-action': string;
31
+ 'teams-public.team-containers.timeout-title': string;
29
32
  };
30
33
  export default _default;
@@ -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, };
@@ -28,5 +28,8 @@ declare const _default: {
28
28
  'ptc-directory.team-profile-page.team-containers.space-container-text': string;
29
29
  'ptc.team-profile-page.team-containers.empty-state.description': string;
30
30
  'ptc.team-profile-page.team-containers.empty-state.title': string;
31
+ 'teams-public..team-containers.timeout-description': string;
32
+ 'teams-public.team-containers.timeout-action': string;
33
+ 'teams-public.team-containers.timeout-title': string;
31
34
  };
32
35
  export default _default;
@@ -28,5 +28,8 @@ declare const _default: {
28
28
  'ptc-directory.team-profile-page.team-containers.space-container-text': string;
29
29
  'ptc.team-profile-page.team-containers.empty-state.description': string;
30
30
  'ptc.team-profile-page.team-containers.empty-state.title': string;
31
+ 'teams-public..team-containers.timeout-description': string;
32
+ 'teams-public.team-containers.timeout-action': string;
33
+ 'teams-public.team-containers.timeout-title': string;
31
34
  };
32
35
  export default _default;
@@ -28,5 +28,8 @@ declare const _default: {
28
28
  'ptc-directory.team-profile-page.team-containers.space-container-text': string;
29
29
  'ptc.team-profile-page.team-containers.empty-state.description': string;
30
30
  'ptc.team-profile-page.team-containers.empty-state.title': string;
31
+ 'teams-public..team-containers.timeout-description': string;
32
+ 'teams-public.team-containers.timeout-action': string;
33
+ 'teams-public.team-containers.timeout-title': string;
31
34
  };
32
35
  export default _default;
@@ -26,5 +26,8 @@ declare const _default: {
26
26
  'ptc-directory.team-profile-page.team-containers.show-more': string;
27
27
  'ptc.team-profile-page.team-containers.empty-state.description': string;
28
28
  'ptc.team-profile-page.team-containers.empty-state.title': string;
29
+ 'teams-public..team-containers.timeout-description': string;
30
+ 'teams-public.team-containers.timeout-action': string;
31
+ 'teams-public.team-containers.timeout-title': string;
29
32
  };
30
33
  export default _default;
@@ -26,5 +26,8 @@ declare const _default: {
26
26
  'ptc-directory.team-profile-page.team-containers.show-more': string;
27
27
  'ptc.team-profile-page.team-containers.empty-state.description': string;
28
28
  'ptc.team-profile-page.team-containers.empty-state.title': string;
29
+ 'teams-public..team-containers.timeout-description': string;
30
+ 'teams-public.team-containers.timeout-action': string;
31
+ 'teams-public.team-containers.timeout-title': string;
29
32
  };
30
33
  export default _default;
@@ -26,5 +26,8 @@ declare const _default: {
26
26
  'ptc-directory.team-profile-page.team-containers.show-more': string;
27
27
  'ptc.team-profile-page.team-containers.empty-state.description': string;
28
28
  'ptc.team-profile-page.team-containers.empty-state.title': string;
29
+ 'teams-public..team-containers.timeout-description': string;
30
+ 'teams-public.team-containers.timeout-action': string;
31
+ 'teams-public.team-containers.timeout-title': string;
29
32
  };
30
33
  export default _default;
package/package.json CHANGED
@@ -39,7 +39,7 @@
39
39
  "@atlaskit/flag": "^17.3.0",
40
40
  "@atlaskit/frontend-utilities": "^3.1.0",
41
41
  "@atlaskit/heading": "^5.2.0",
42
- "@atlaskit/icon": "^27.7.0",
42
+ "@atlaskit/icon": "^27.8.0",
43
43
  "@atlaskit/image": "^3.0.0",
44
44
  "@atlaskit/link": "^3.2.0",
45
45
  "@atlaskit/logo": "^19.6.0",
@@ -48,7 +48,7 @@
48
48
  "@atlaskit/platform-feature-flags": "^1.1.0",
49
49
  "@atlaskit/primitives": "^14.11.0",
50
50
  "@atlaskit/teams-app-internal-product-permissions": "^1.0.0",
51
- "@atlaskit/teams-client": "^4.8.0",
51
+ "@atlaskit/teams-client": "^4.9.0",
52
52
  "@atlaskit/theme": "^19.0.0",
53
53
  "@atlaskit/tokens": "^5.6.0",
54
54
  "@atlaskit/tooltip": "^20.4.0",
@@ -117,7 +117,7 @@
117
117
  }
118
118
  },
119
119
  "name": "@atlaskit/teams-public",
120
- "version": "0.50.0",
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",