@atlaskit/teams-public 0.27.1 → 0.29.0

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 (52) hide show
  1. package/CHANGELOG.md +22 -0
  2. package/dist/cjs/common/assets/index.js +27 -0
  3. package/dist/cjs/common/utils/get-container-properties.js +3 -2
  4. package/dist/cjs/common/utils/team-web-link-converters.js +25 -0
  5. package/dist/cjs/controllers/hooks/use-team-web-links/index.js +162 -0
  6. package/dist/cjs/controllers/hooks/use-team-web-links/types.js +5 -0
  7. package/dist/cjs/controllers/index.js +13 -0
  8. package/dist/cjs/index.js +33 -1
  9. package/dist/cjs/ui/team-containers/main.js +9 -7
  10. package/dist/es2019/common/assets/index.js +3 -0
  11. package/dist/es2019/common/utils/get-container-properties.js +3 -3
  12. package/dist/es2019/common/utils/team-web-link-converters.js +19 -0
  13. package/dist/es2019/controllers/hooks/use-team-web-links/index.js +86 -0
  14. package/dist/es2019/controllers/hooks/use-team-web-links/types.js +1 -0
  15. package/dist/es2019/controllers/index.js +1 -0
  16. package/dist/es2019/index.js +3 -1
  17. package/dist/es2019/ui/team-containers/main.js +8 -7
  18. package/dist/esm/common/assets/index.js +3 -0
  19. package/dist/esm/common/utils/get-container-properties.js +3 -2
  20. package/dist/esm/common/utils/team-web-link-converters.js +19 -0
  21. package/dist/esm/controllers/hooks/use-team-web-links/index.js +155 -0
  22. package/dist/esm/controllers/hooks/use-team-web-links/types.js +1 -0
  23. package/dist/esm/controllers/index.js +1 -0
  24. package/dist/esm/index.js +3 -1
  25. package/dist/esm/ui/team-containers/main.js +9 -7
  26. package/dist/types/common/assets/index.d.ts +3 -0
  27. package/dist/types/common/types.d.ts +9 -1
  28. package/dist/types/common/utils/team-web-link-converters.d.ts +4 -0
  29. package/dist/types/controllers/hooks/use-team-containers/index.d.ts +1 -1
  30. package/dist/types/controllers/hooks/use-team-web-links/index.d.ts +24 -0
  31. package/dist/types/controllers/hooks/use-team-web-links/types.d.ts +14 -0
  32. package/dist/types/controllers/index.d.ts +1 -0
  33. package/dist/types/index.d.ts +2 -0
  34. package/dist/types/services/agg-client/index.d.ts +1 -1
  35. package/dist/types/services/agg-client/utils/queries/team-connected-to-container-query.d.ts +1 -1
  36. package/dist/types/services/main.d.ts +1 -1
  37. package/dist/types/ui/team-containers/main.d.ts +1 -1
  38. package/dist/types/ui/team-containers/types.d.ts +4 -0
  39. package/dist/types-ts4.5/common/assets/index.d.ts +3 -0
  40. package/dist/types-ts4.5/common/types.d.ts +9 -1
  41. package/dist/types-ts4.5/common/utils/team-web-link-converters.d.ts +4 -0
  42. package/dist/types-ts4.5/controllers/hooks/use-team-containers/index.d.ts +1 -1
  43. package/dist/types-ts4.5/controllers/hooks/use-team-web-links/index.d.ts +24 -0
  44. package/dist/types-ts4.5/controllers/hooks/use-team-web-links/types.d.ts +14 -0
  45. package/dist/types-ts4.5/controllers/index.d.ts +1 -0
  46. package/dist/types-ts4.5/index.d.ts +2 -0
  47. package/dist/types-ts4.5/services/agg-client/index.d.ts +1 -1
  48. package/dist/types-ts4.5/services/agg-client/utils/queries/team-connected-to-container-query.d.ts +1 -1
  49. package/dist/types-ts4.5/services/main.d.ts +1 -1
  50. package/dist/types-ts4.5/ui/team-containers/main.d.ts +1 -1
  51. package/dist/types-ts4.5/ui/team-containers/types.d.ts +4 -0
  52. package/package.json +4 -3
package/CHANGELOG.md CHANGED
@@ -1,5 +1,27 @@
1
1
  # @atlaskit/teams-public
2
2
 
3
+ ## 0.29.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [#156784](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/pull-requests/156784)
8
+ [`a614e25bb80c9`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/a614e25bb80c9) -
9
+ PTC-11532 Add useTeamWebLink in teams-public, allow get/delete/update team web links in
10
+ teams-public
11
+
12
+ ### Patch Changes
13
+
14
+ - Updated dependencies
15
+
16
+ ## 0.28.0
17
+
18
+ ### Minor Changes
19
+
20
+ - [#153501](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/pull-requests/153501)
21
+ [`daab8878af268`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/daab8878af268) -
22
+ [ux] PTC-11529 Build teams conatiners dropdown list & modify team web link modal; Classfied icons
23
+ by size.
24
+
3
25
  ## 0.27.1
4
26
 
5
27
  ### Patch Changes
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ Object.defineProperty(exports, "ConfluenceIcon", {
8
+ enumerable: true,
9
+ get: function get() {
10
+ return _ConfluenceIcon.default;
11
+ }
12
+ });
13
+ Object.defineProperty(exports, "JiraIcon", {
14
+ enumerable: true,
15
+ get: function get() {
16
+ return _JiraIcon.default;
17
+ }
18
+ });
19
+ Object.defineProperty(exports, "LoomIcon", {
20
+ enumerable: true,
21
+ get: function get() {
22
+ return _LoomIcon.default;
23
+ }
24
+ });
25
+ var _ConfluenceIcon = _interopRequireDefault(require("./ConfluenceIcon.svg"));
26
+ var _JiraIcon = _interopRequireDefault(require("./JiraIcon.svg"));
27
+ var _LoomIcon = _interopRequireDefault(require("./LoomIcon.svg"));
@@ -93,6 +93,7 @@ var getJiraIcon = function getJiraIcon(containerSubTypes) {
93
93
  }
94
94
  };
95
95
  var getJiraContainerProperties = function getJiraContainerProperties(containerTypeProperties) {
96
+ var iconSize = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'small';
96
97
  var _ref = containerTypeProperties || {},
97
98
  subType = _ref.subType,
98
99
  name = _ref.name;
@@ -100,7 +101,7 @@ var getJiraContainerProperties = function getJiraContainerProperties(containerTy
100
101
  var baseProperties = {
101
102
  description: /*#__PURE__*/_react.default.createElement(_reactIntlNext.FormattedMessage, messages.jiraProjectDescription),
102
103
  icon: /*#__PURE__*/_react.default.createElement(Comp, {
103
- xcss: styles.iconWrapper
104
+ xcss: iconSize === 'medium' ? styles.mediumIconWrapper : styles.iconWrapper
104
105
  }, /*#__PURE__*/_react.default.createElement(_image.default, {
105
106
  src: getJiraIcon(subType),
106
107
  alt: "",
@@ -152,7 +153,7 @@ var getContainerProperties = exports.getContainerProperties = function getContai
152
153
  containerTypeText: /*#__PURE__*/_react.default.createElement(_reactIntlNext.FormattedMessage, messages.spaceContainerText)
153
154
  };
154
155
  case 'JiraProject':
155
- return getJiraContainerProperties(containerTypeProperties);
156
+ return getJiraContainerProperties(containerTypeProperties, iconSize);
156
157
  case 'WebLink':
157
158
  return {
158
159
  description: /*#__PURE__*/_react.default.createElement(_compiled.Text, {
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.webLinksToContainers = exports.webLinkToContainer = exports.containerToNewWebLink = void 0;
7
+ var containerToNewWebLink = exports.containerToNewWebLink = function containerToNewWebLink(container) {
8
+ return {
9
+ contentTitle: container.name,
10
+ description: '',
11
+ linkUri: container.link || ''
12
+ };
13
+ };
14
+ var webLinkToContainer = exports.webLinkToContainer = function webLinkToContainer(link) {
15
+ return {
16
+ id: link.linkId,
17
+ type: 'WebLink',
18
+ name: link.contentTitle,
19
+ icon: null,
20
+ link: link.linkUri
21
+ };
22
+ };
23
+ var webLinksToContainers = exports.webLinksToContainers = function webLinksToContainers(links) {
24
+ return links.map(webLinkToContainer);
25
+ };
@@ -0,0 +1,162 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.useTeamWebLinksActions = exports.useTeamWebLinks = exports.actions = void 0;
8
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
9
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
10
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
11
+ var _reactSweetState = require("react-sweet-state");
12
+ var _teamsClient = require("@atlaskit/teams-client");
13
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
14
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
15
+ var _initialState = {
16
+ teamId: '',
17
+ isLoading: false,
18
+ hasLoaded: false,
19
+ hasError: false,
20
+ shouldReload: false,
21
+ errorType: null,
22
+ links: []
23
+ };
24
+ var actions = exports.actions = {
25
+ getTeamWebLinks: function getTeamWebLinks(teamId) {
26
+ return /*#__PURE__*/function () {
27
+ var _ref2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(_ref) {
28
+ var getState, setState, _getState, links, currentTeamId, initialLinks, _yield$teamsClient$ge, entities;
29
+ return _regenerator.default.wrap(function _callee$(_context) {
30
+ while (1) switch (_context.prev = _context.next) {
31
+ case 0:
32
+ getState = _ref.getState, setState = _ref.setState;
33
+ _getState = getState(), links = _getState.links, currentTeamId = _getState.teamId;
34
+ initialLinks = teamId === currentTeamId ? links : [];
35
+ setState({
36
+ teamId: teamId,
37
+ isLoading: true,
38
+ hasLoaded: false,
39
+ hasError: false,
40
+ shouldReload: false,
41
+ links: initialLinks
42
+ });
43
+ _context.prev = 4;
44
+ _context.next = 7;
45
+ return _teamsClient.teamsClient.getTeamLinksByTeamId(teamId);
46
+ case 7:
47
+ _yield$teamsClient$ge = _context.sent;
48
+ entities = _yield$teamsClient$ge.entities;
49
+ if (!(getState().teamId !== teamId)) {
50
+ _context.next = 11;
51
+ break;
52
+ }
53
+ return _context.abrupt("return");
54
+ case 11:
55
+ setState({
56
+ isLoading: false,
57
+ hasLoaded: true,
58
+ hasError: false,
59
+ shouldReload: false,
60
+ links: entities
61
+ });
62
+ _context.next = 19;
63
+ break;
64
+ case 14:
65
+ _context.prev = 14;
66
+ _context.t0 = _context["catch"](4);
67
+ if (!(getState().teamId !== teamId)) {
68
+ _context.next = 18;
69
+ break;
70
+ }
71
+ return _context.abrupt("return");
72
+ case 18:
73
+ setState({
74
+ isLoading: false,
75
+ hasLoaded: true,
76
+ hasError: true,
77
+ errorType: _context.t0 instanceof Error ? _context.t0 : undefined,
78
+ shouldReload: false,
79
+ links: []
80
+ });
81
+ case 19:
82
+ case "end":
83
+ return _context.stop();
84
+ }
85
+ }, _callee, null, [[4, 14]]);
86
+ }));
87
+ return function (_x) {
88
+ return _ref2.apply(this, arguments);
89
+ };
90
+ }();
91
+ },
92
+ createTeamWebLink: function createTeamWebLink(teamId, newLink) {
93
+ return /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2() {
94
+ return _regenerator.default.wrap(function _callee2$(_context2) {
95
+ while (1) switch (_context2.prev = _context2.next) {
96
+ case 0:
97
+ _context2.next = 2;
98
+ return _teamsClient.teamsClient.createTeamLink(teamId, newLink);
99
+ case 2:
100
+ return _context2.abrupt("return", _context2.sent);
101
+ case 3:
102
+ case "end":
103
+ return _context2.stop();
104
+ }
105
+ }, _callee2);
106
+ }));
107
+ },
108
+ updateTeamWebLink: function updateTeamWebLink(teamId, linkId, newLink) {
109
+ return /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3() {
110
+ return _regenerator.default.wrap(function _callee3$(_context3) {
111
+ while (1) switch (_context3.prev = _context3.next) {
112
+ case 0:
113
+ _context3.next = 2;
114
+ return _teamsClient.teamsClient.updateTeamLink(teamId, linkId, newLink);
115
+ case 2:
116
+ return _context3.abrupt("return", _context3.sent);
117
+ case 3:
118
+ case "end":
119
+ return _context3.stop();
120
+ }
121
+ }, _callee3);
122
+ }));
123
+ },
124
+ removeWebLink: function removeWebLink(teamId, linkId) {
125
+ return /*#__PURE__*/function () {
126
+ var _ref6 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee4(_ref5) {
127
+ var dispatch;
128
+ return _regenerator.default.wrap(function _callee4$(_context4) {
129
+ while (1) switch (_context4.prev = _context4.next) {
130
+ case 0:
131
+ dispatch = _ref5.dispatch;
132
+ _context4.next = 3;
133
+ return _teamsClient.teamsClient.deleteTeamLink(teamId, linkId);
134
+ case 3:
135
+ _context4.next = 5;
136
+ return dispatch(actions.getTeamWebLinks(teamId));
137
+ case 5:
138
+ case "end":
139
+ return _context4.stop();
140
+ }
141
+ }, _callee4);
142
+ }));
143
+ return function (_x2) {
144
+ return _ref6.apply(this, arguments);
145
+ };
146
+ }();
147
+ },
148
+ initialState: function initialState(state) {
149
+ return function (_ref7) {
150
+ var setState = _ref7.setState;
151
+ setState(_objectSpread(_objectSpread({}, _initialState), state));
152
+ };
153
+ }
154
+ };
155
+ var TeamWebLinksStore = (0, _reactSweetState.createStore)({
156
+ initialState: _initialState,
157
+ actions: actions
158
+ });
159
+ var useTeamWebLinks = exports.useTeamWebLinks = (0, _reactSweetState.createHook)(TeamWebLinksStore);
160
+ var useTeamWebLinksActions = exports.useTeamWebLinksActions = (0, _reactSweetState.createHook)(TeamWebLinksStore, {
161
+ selector: null
162
+ });
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
@@ -15,5 +15,18 @@ Object.defineProperty(exports, "useTeamContainers", {
15
15
  return _useTeamContainers.useTeamContainers;
16
16
  }
17
17
  });
18
+ Object.defineProperty(exports, "useTeamWebLinks", {
19
+ enumerable: true,
20
+ get: function get() {
21
+ return _useTeamWebLinks.useTeamWebLinks;
22
+ }
23
+ });
24
+ Object.defineProperty(exports, "useTeamWebLinksActions", {
25
+ enumerable: true,
26
+ get: function get() {
27
+ return _useTeamWebLinks.useTeamWebLinksActions;
28
+ }
29
+ });
18
30
  var _useTeamContainers = require("./hooks/use-team-containers");
31
+ var _useTeamWebLinks = require("./hooks/use-team-web-links");
19
32
  var _utils = require("./product-permission/utils");
package/dist/cjs/index.js CHANGED
@@ -3,6 +3,24 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
+ Object.defineProperty(exports, "ConfluenceIcon", {
7
+ enumerable: true,
8
+ get: function get() {
9
+ return _assets.ConfluenceIcon;
10
+ }
11
+ });
12
+ Object.defineProperty(exports, "JiraIcon", {
13
+ enumerable: true,
14
+ get: function get() {
15
+ return _assets.JiraIcon;
16
+ }
17
+ });
18
+ Object.defineProperty(exports, "LoomIcon", {
19
+ enumerable: true,
20
+ get: function get() {
21
+ return _assets.LoomIcon;
22
+ }
23
+ });
6
24
  Object.defineProperty(exports, "TeamContainers", {
7
25
  enumerable: true,
8
26
  get: function get() {
@@ -39,8 +57,22 @@ Object.defineProperty(exports, "useTeamContainers", {
39
57
  return _useTeamContainers.useTeamContainers;
40
58
  }
41
59
  });
60
+ Object.defineProperty(exports, "useTeamWebLinks", {
61
+ enumerable: true,
62
+ get: function get() {
63
+ return _useTeamWebLinks.useTeamWebLinks;
64
+ }
65
+ });
66
+ Object.defineProperty(exports, "useTeamWebLinksActions", {
67
+ enumerable: true,
68
+ get: function get() {
69
+ return _useTeamWebLinks.useTeamWebLinksActions;
70
+ }
71
+ });
42
72
  var _teamContainers = require("./ui/team-containers");
43
73
  var _useTeamContainers = require("./controllers/hooks/use-team-containers");
74
+ var _useTeamWebLinks = require("./controllers/hooks/use-team-web-links");
44
75
  var _useProductPermission = require("./controllers/hooks/use-product-permission");
45
76
  var _utils = require("./controllers/product-permission/utils");
46
- var _getContainerProperties = require("./common/utils/get-container-properties");
77
+ var _getContainerProperties = require("./common/utils/get-container-properties");
78
+ var _assets = require("./common/assets");
@@ -38,7 +38,9 @@ var TeamContainers = exports.TeamContainers = function TeamContainers(_ref) {
38
38
  userId = _ref.userId,
39
39
  cloudId = _ref.cloudId,
40
40
  filterContainerId = _ref.filterContainerId,
41
- isDisplayedOnProfileCard = _ref.isDisplayedOnProfileCard;
41
+ isDisplayedOnProfileCard = _ref.isDisplayedOnProfileCard,
42
+ _ref$maxNumberOfConta = _ref.maxNumberOfContainersToShow,
43
+ maxNumberOfContainersToShow = _ref$maxNumberOfConta === void 0 ? MAX_NUMBER_OF_CONTAINERS_TO_SHOW : _ref$maxNumberOfConta;
42
44
  var _useAnalyticsEvents = (0, _analyticsNext.useAnalyticsEvents)(),
43
45
  createAnalyticsEvent = _useAnalyticsEvents.createAnalyticsEvent;
44
46
  var _useTeamContainers = (0, _useTeamContainers2.useTeamContainers)(teamId),
@@ -92,7 +94,7 @@ var TeamContainers = exports.TeamContainers = function TeamContainers(_ref) {
92
94
  }
93
95
  }, [isDisplayedOnProfileCard, filterContainerId, teamContainers]);
94
96
  (0, _react.useEffect)(function () {
95
- if (filteredTeamContainers.length > MAX_NUMBER_OF_CONTAINERS_TO_SHOW || isDisplayedOnProfileCard) {
97
+ if (filteredTeamContainers.length > maxNumberOfContainersToShow || isDisplayedOnProfileCard) {
96
98
  setShowAddContainer({
97
99
  Jira: false,
98
100
  Confluence: false,
@@ -114,7 +116,7 @@ var TeamContainers = exports.TeamContainers = function TeamContainers(_ref) {
114
116
  Loom: !hasLoomSpace && !!productPermissions && !!(0, _controllers.hasProductPermission)(productPermissions, 'loom')
115
117
  });
116
118
  }
117
- }, [isDisplayedOnProfileCard, productPermissions, filteredTeamContainers]);
119
+ }, [isDisplayedOnProfileCard, productPermissions, filteredTeamContainers, maxNumberOfContainersToShow]);
118
120
  var handleShowMore = function handleShowMore() {
119
121
  setShowMore(!showMore);
120
122
  };
@@ -174,7 +176,7 @@ var TeamContainers = exports.TeamContainers = function TeamContainers(_ref) {
174
176
  var TeamContainersSkeletonComponent = (components === null || components === void 0 ? void 0 : components.TeamContainersSkeleton) || _teamContainersSkeleton.TeamContainersSkeleton;
175
177
  if (loading || productPermissionIsLoading) {
176
178
  return /*#__PURE__*/_react.default.createElement(TeamContainersSkeletonComponent, {
177
- numberOfContainers: MAX_NUMBER_OF_CONTAINERS_TO_SHOW
179
+ numberOfContainers: maxNumberOfContainersToShow
178
180
  });
179
181
  }
180
182
  if (filteredTeamContainers.length === 0 && !isDisplayedOnProfileCard && (!productPermissions || !(productPermissions && ((0, _controllers.hasProductPermission)(productPermissions, 'jira') || (0, _controllers.hasProductPermission)(productPermissions, 'confluence') || (0, _controllers.hasProductPermission)(productPermissions, 'loom'))))) {
@@ -185,7 +187,7 @@ var TeamContainers = exports.TeamContainers = function TeamContainers(_ref) {
185
187
  }, /*#__PURE__*/_react.default.createElement(_primitives.Grid, {
186
188
  templateColumns: "repeat(auto-fill, minmax(300px, 1fr))",
187
189
  gap: isDisplayedOnProfileCard ? 'space.0' : 'space.100'
188
- }, filteredTeamContainers.slice(0, MAX_NUMBER_OF_CONTAINERS_TO_SHOW).map(function (container) {
190
+ }, filteredTeamContainers.slice(0, maxNumberOfContainersToShow).map(function (container) {
189
191
  return /*#__PURE__*/_react.default.createElement(LinkedContainerCardComponent, {
190
192
  key: container.id,
191
193
  containerType: container.type,
@@ -217,7 +219,7 @@ var TeamContainers = exports.TeamContainers = function TeamContainers(_ref) {
217
219
  return _onAddAContainerClick(e, 'Loom');
218
220
  },
219
221
  containerType: "LoomSpace"
220
- }), showMore && filteredTeamContainers.slice(MAX_NUMBER_OF_CONTAINERS_TO_SHOW).map(function (container) {
222
+ }), showMore && filteredTeamContainers.slice(maxNumberOfContainersToShow).map(function (container) {
221
223
  return /*#__PURE__*/_react.default.createElement(LinkedContainerCardComponent, {
222
224
  key: container.id,
223
225
  containerType: container.type,
@@ -234,7 +236,7 @@ var TeamContainers = exports.TeamContainers = function TeamContainers(_ref) {
234
236
  });
235
237
  }
236
238
  });
237
- })), filteredTeamContainers.length > MAX_NUMBER_OF_CONTAINERS_TO_SHOW && /*#__PURE__*/_react.default.createElement(_primitives.Inline, null, /*#__PURE__*/_react.default.createElement(_new.default, {
239
+ })), filteredTeamContainers.length > maxNumberOfContainersToShow && /*#__PURE__*/_react.default.createElement(_primitives.Inline, null, /*#__PURE__*/_react.default.createElement(_new.default, {
238
240
  appearance: "subtle",
239
241
  onClick: handleShowMore
240
242
  }, showMore ? /*#__PURE__*/_react.default.createElement(_reactIntlNext.FormattedMessage, messages.showLess) : /*#__PURE__*/_react.default.createElement(_reactIntlNext.FormattedMessage, messages.showMore)))), /*#__PURE__*/_react.default.createElement(_modalTransition.default, null, isDisconnectDialogOpen && selectedContainerDetails && /*#__PURE__*/_react.default.createElement(_async.DisconnectDialogLazy, {
@@ -0,0 +1,3 @@
1
+ export { default as ConfluenceIcon } from './ConfluenceIcon.svg';
2
+ export { default as JiraIcon } from './JiraIcon.svg';
3
+ export { default as LoomIcon } from './LoomIcon.svg';
@@ -82,7 +82,7 @@ const getJiraIcon = containerSubTypes => {
82
82
  return JiraIcon;
83
83
  }
84
84
  };
85
- const getJiraContainerProperties = containerTypeProperties => {
85
+ const getJiraContainerProperties = (containerTypeProperties, iconSize = 'small') => {
86
86
  const {
87
87
  subType,
88
88
  name
@@ -91,7 +91,7 @@ const getJiraContainerProperties = containerTypeProperties => {
91
91
  const baseProperties = {
92
92
  description: /*#__PURE__*/React.createElement(FormattedMessage, messages.jiraProjectDescription),
93
93
  icon: /*#__PURE__*/React.createElement(Comp, {
94
- xcss: styles.iconWrapper
94
+ xcss: iconSize === 'medium' ? styles.mediumIconWrapper : styles.iconWrapper
95
95
  }, /*#__PURE__*/React.createElement(Image, {
96
96
  src: getJiraIcon(subType),
97
97
  alt: "",
@@ -142,7 +142,7 @@ export const getContainerProperties = (containerType, iconSize = 'small', contai
142
142
  containerTypeText: /*#__PURE__*/React.createElement(FormattedMessage, messages.spaceContainerText)
143
143
  };
144
144
  case 'JiraProject':
145
- return getJiraContainerProperties(containerTypeProperties);
145
+ return getJiraContainerProperties(containerTypeProperties, iconSize);
146
146
  case 'WebLink':
147
147
  return {
148
148
  description: /*#__PURE__*/React.createElement(Text, {
@@ -0,0 +1,19 @@
1
+ export const containerToNewWebLink = container => {
2
+ return {
3
+ contentTitle: container.name,
4
+ description: '',
5
+ linkUri: container.link || ''
6
+ };
7
+ };
8
+ export const webLinkToContainer = link => {
9
+ return {
10
+ id: link.linkId,
11
+ type: 'WebLink',
12
+ name: link.contentTitle,
13
+ icon: null,
14
+ link: link.linkUri
15
+ };
16
+ };
17
+ export const webLinksToContainers = links => {
18
+ return links.map(webLinkToContainer);
19
+ };
@@ -0,0 +1,86 @@
1
+ import { createHook, createStore } from 'react-sweet-state';
2
+ import { teamsClient } from '@atlaskit/teams-client';
3
+ const initialState = {
4
+ teamId: '',
5
+ isLoading: false,
6
+ hasLoaded: false,
7
+ hasError: false,
8
+ shouldReload: false,
9
+ errorType: null,
10
+ links: []
11
+ };
12
+ export const actions = {
13
+ getTeamWebLinks: teamId => async ({
14
+ getState,
15
+ setState
16
+ }) => {
17
+ const {
18
+ links,
19
+ teamId: currentTeamId
20
+ } = getState();
21
+ const initialLinks = teamId === currentTeamId ? links : [];
22
+ setState({
23
+ teamId,
24
+ isLoading: true,
25
+ hasLoaded: false,
26
+ hasError: false,
27
+ shouldReload: false,
28
+ links: initialLinks
29
+ });
30
+ try {
31
+ const {
32
+ entities
33
+ } = await teamsClient.getTeamLinksByTeamId(teamId);
34
+ if (getState().teamId !== teamId) {
35
+ return;
36
+ }
37
+ setState({
38
+ isLoading: false,
39
+ hasLoaded: true,
40
+ hasError: false,
41
+ shouldReload: false,
42
+ links: entities
43
+ });
44
+ } catch (e) {
45
+ if (getState().teamId !== teamId) {
46
+ return;
47
+ }
48
+ setState({
49
+ isLoading: false,
50
+ hasLoaded: true,
51
+ hasError: true,
52
+ errorType: e instanceof Error ? e : undefined,
53
+ shouldReload: false,
54
+ links: []
55
+ });
56
+ }
57
+ },
58
+ createTeamWebLink: (teamId, newLink) => async () => {
59
+ return await teamsClient.createTeamLink(teamId, newLink);
60
+ },
61
+ updateTeamWebLink: (teamId, linkId, newLink) => async () => {
62
+ return await teamsClient.updateTeamLink(teamId, linkId, newLink);
63
+ },
64
+ removeWebLink: (teamId, linkId) => async ({
65
+ dispatch
66
+ }) => {
67
+ await teamsClient.deleteTeamLink(teamId, linkId);
68
+ await dispatch(actions.getTeamWebLinks(teamId));
69
+ },
70
+ initialState: state => ({
71
+ setState
72
+ }) => {
73
+ setState({
74
+ ...initialState,
75
+ ...state
76
+ });
77
+ }
78
+ };
79
+ const TeamWebLinksStore = createStore({
80
+ initialState,
81
+ actions
82
+ });
83
+ export const useTeamWebLinks = createHook(TeamWebLinksStore);
84
+ export const useTeamWebLinksActions = createHook(TeamWebLinksStore, {
85
+ selector: null
86
+ });
@@ -1,2 +1,3 @@
1
1
  export { useTeamContainers } from './hooks/use-team-containers';
2
+ export { useTeamWebLinks, useTeamWebLinksActions } from './hooks/use-team-web-links';
2
3
  export { hasProductPermission } from './product-permission/utils';
@@ -1,5 +1,7 @@
1
1
  export { TeamContainers } from './ui/team-containers';
2
2
  export { useTeamContainers, useConnectedTeams } from './controllers/hooks/use-team-containers';
3
+ export { useTeamWebLinks, useTeamWebLinksActions } from './controllers/hooks/use-team-web-links';
3
4
  export { useProductPermissions } from './controllers/hooks/use-product-permission';
4
5
  export { hasProductPermission } from './controllers/product-permission/utils';
5
- export { getContainerProperties } from './common/utils/get-container-properties';
6
+ export { getContainerProperties } from './common/utils/get-container-properties';
7
+ export { ConfluenceIcon, JiraIcon, LoomIcon } from './common/assets';
@@ -25,7 +25,8 @@ export const TeamContainers = ({
25
25
  userId,
26
26
  cloudId,
27
27
  filterContainerId,
28
- isDisplayedOnProfileCard
28
+ isDisplayedOnProfileCard,
29
+ maxNumberOfContainersToShow = MAX_NUMBER_OF_CONTAINERS_TO_SHOW
29
30
  }) => {
30
31
  const {
31
32
  createAnalyticsEvent
@@ -64,7 +65,7 @@ export const TeamContainers = ({
64
65
  }
65
66
  }, [isDisplayedOnProfileCard, filterContainerId, teamContainers]);
66
67
  useEffect(() => {
67
- if (filteredTeamContainers.length > MAX_NUMBER_OF_CONTAINERS_TO_SHOW || isDisplayedOnProfileCard) {
68
+ if (filteredTeamContainers.length > maxNumberOfContainersToShow || isDisplayedOnProfileCard) {
68
69
  setShowAddContainer({
69
70
  Jira: false,
70
71
  Confluence: false,
@@ -80,7 +81,7 @@ export const TeamContainers = ({
80
81
  Loom: !hasLoomSpace && !!productPermissions && !!hasProductPermission(productPermissions, 'loom')
81
82
  });
82
83
  }
83
- }, [isDisplayedOnProfileCard, productPermissions, filteredTeamContainers]);
84
+ }, [isDisplayedOnProfileCard, productPermissions, filteredTeamContainers, maxNumberOfContainersToShow]);
84
85
  const handleShowMore = () => {
85
86
  setShowMore(!showMore);
86
87
  };
@@ -122,7 +123,7 @@ export const TeamContainers = ({
122
123
  const TeamContainersSkeletonComponent = (components === null || components === void 0 ? void 0 : components.TeamContainersSkeleton) || TeamContainersSkeleton;
123
124
  if (loading || productPermissionIsLoading) {
124
125
  return /*#__PURE__*/React.createElement(TeamContainersSkeletonComponent, {
125
- numberOfContainers: MAX_NUMBER_OF_CONTAINERS_TO_SHOW
126
+ numberOfContainers: maxNumberOfContainersToShow
126
127
  });
127
128
  }
128
129
  if (filteredTeamContainers.length === 0 && !isDisplayedOnProfileCard && (!productPermissions || !(productPermissions && (hasProductPermission(productPermissions, 'jira') || hasProductPermission(productPermissions, 'confluence') || hasProductPermission(productPermissions, 'loom'))))) {
@@ -133,7 +134,7 @@ export const TeamContainers = ({
133
134
  }, /*#__PURE__*/React.createElement(Grid, {
134
135
  templateColumns: "repeat(auto-fill, minmax(300px, 1fr))",
135
136
  gap: isDisplayedOnProfileCard ? 'space.0' : 'space.100'
136
- }, filteredTeamContainers.slice(0, MAX_NUMBER_OF_CONTAINERS_TO_SHOW).map(container => {
137
+ }, filteredTeamContainers.slice(0, maxNumberOfContainersToShow).map(container => {
137
138
  return /*#__PURE__*/React.createElement(LinkedContainerCardComponent, {
138
139
  key: container.id,
139
140
  containerType: container.type,
@@ -157,7 +158,7 @@ export const TeamContainers = ({
157
158
  }), showAddContainer.Loom && fg('loom_tab_in_container_linker_team_profile_page') && /*#__PURE__*/React.createElement(AddContainerCard, {
158
159
  onAddAContainerClick: e => onAddAContainerClick(e, 'Loom'),
159
160
  containerType: "LoomSpace"
160
- }), showMore && filteredTeamContainers.slice(MAX_NUMBER_OF_CONTAINERS_TO_SHOW).map(container => {
161
+ }), showMore && filteredTeamContainers.slice(maxNumberOfContainersToShow).map(container => {
161
162
  return /*#__PURE__*/React.createElement(LinkedContainerCardComponent, {
162
163
  key: container.id,
163
164
  containerType: container.type,
@@ -172,7 +173,7 @@ export const TeamContainers = ({
172
173
  containerName: container.name
173
174
  })
174
175
  });
175
- })), filteredTeamContainers.length > MAX_NUMBER_OF_CONTAINERS_TO_SHOW && /*#__PURE__*/React.createElement(Inline, null, /*#__PURE__*/React.createElement(Button, {
176
+ })), filteredTeamContainers.length > maxNumberOfContainersToShow && /*#__PURE__*/React.createElement(Inline, null, /*#__PURE__*/React.createElement(Button, {
176
177
  appearance: "subtle",
177
178
  onClick: handleShowMore
178
179
  }, showMore ? /*#__PURE__*/React.createElement(FormattedMessage, messages.showLess) : /*#__PURE__*/React.createElement(FormattedMessage, messages.showMore)))), /*#__PURE__*/React.createElement(ModalTransition, null, isDisconnectDialogOpen && selectedContainerDetails && /*#__PURE__*/React.createElement(DisconnectDialogLazy, {
@@ -0,0 +1,3 @@
1
+ export { default as ConfluenceIcon } from './ConfluenceIcon.svg';
2
+ export { default as JiraIcon } from './JiraIcon.svg';
3
+ export { default as LoomIcon } from './LoomIcon.svg';
@@ -86,6 +86,7 @@ var getJiraIcon = function getJiraIcon(containerSubTypes) {
86
86
  }
87
87
  };
88
88
  var getJiraContainerProperties = function getJiraContainerProperties(containerTypeProperties) {
89
+ var iconSize = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'small';
89
90
  var _ref = containerTypeProperties || {},
90
91
  subType = _ref.subType,
91
92
  name = _ref.name;
@@ -93,7 +94,7 @@ var getJiraContainerProperties = function getJiraContainerProperties(containerTy
93
94
  var baseProperties = {
94
95
  description: /*#__PURE__*/React.createElement(FormattedMessage, messages.jiraProjectDescription),
95
96
  icon: /*#__PURE__*/React.createElement(Comp, {
96
- xcss: styles.iconWrapper
97
+ xcss: iconSize === 'medium' ? styles.mediumIconWrapper : styles.iconWrapper
97
98
  }, /*#__PURE__*/React.createElement(Image, {
98
99
  src: getJiraIcon(subType),
99
100
  alt: "",
@@ -145,7 +146,7 @@ export var getContainerProperties = function getContainerProperties(containerTyp
145
146
  containerTypeText: /*#__PURE__*/React.createElement(FormattedMessage, messages.spaceContainerText)
146
147
  };
147
148
  case 'JiraProject':
148
- return getJiraContainerProperties(containerTypeProperties);
149
+ return getJiraContainerProperties(containerTypeProperties, iconSize);
149
150
  case 'WebLink':
150
151
  return {
151
152
  description: /*#__PURE__*/React.createElement(Text, {