@atlaskit/teams-public 0.37.0 → 0.38.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 +22 -0
- package/dist/cjs/controllers/hooks/use-team-links-and-containers/index.js +1 -1
- package/dist/cjs/ui/team-containers/main.js +13 -15
- package/dist/es2019/controllers/hooks/use-team-links-and-containers/index.js +1 -1
- package/dist/es2019/ui/team-containers/main.js +13 -15
- package/dist/esm/controllers/hooks/use-team-links-and-containers/index.js +1 -1
- package/dist/esm/ui/team-containers/main.js +13 -15
- package/package.json +6 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,27 @@
|
|
|
1
1
|
# @atlaskit/teams-public
|
|
2
2
|
|
|
3
|
+
## 0.38.1
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [#171543](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/pull-requests/171543)
|
|
8
|
+
[`8012f13429f1c`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/8012f13429f1c) -
|
|
9
|
+
Minor fix - adding analytics event name, update team links limit number
|
|
10
|
+
- Updated dependencies
|
|
11
|
+
|
|
12
|
+
## 0.38.0
|
|
13
|
+
|
|
14
|
+
### Minor Changes
|
|
15
|
+
|
|
16
|
+
- [#170383](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/pull-requests/170383)
|
|
17
|
+
[`0b0a0dd43dca8`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/0b0a0dd43dca8) -
|
|
18
|
+
NO-ISSUE Replace existing experiment gate with new feature gate:
|
|
19
|
+
enable_web_links_in_team_containers
|
|
20
|
+
|
|
21
|
+
### Patch Changes
|
|
22
|
+
|
|
23
|
+
- Updated dependencies
|
|
24
|
+
|
|
3
25
|
## 0.37.0
|
|
4
26
|
|
|
5
27
|
### Minor Changes
|
|
@@ -51,7 +51,7 @@ var useTeamLinksAndContainers = exports.useTeamLinksAndContainers = function use
|
|
|
51
51
|
return [].concat((0, _toConsumableArray2.default)(teamContainers), (0, _toConsumableArray2.default)(webLinkContainers));
|
|
52
52
|
}, [teamContainers, webLinkContainers]);
|
|
53
53
|
var canAddMoreLink = (0, _react.useMemo)(function () {
|
|
54
|
-
return allContainers.length
|
|
54
|
+
return allContainers.length < MAX_LINKS_LIMIT;
|
|
55
55
|
}, [allContainers.length]);
|
|
56
56
|
var addTeamLink = (0, _react.useCallback)( /*#__PURE__*/function () {
|
|
57
57
|
var _ref = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(containerOrWebLink) {
|
|
@@ -13,7 +13,6 @@ var _react = _interopRequireWildcard(require("react"));
|
|
|
13
13
|
var _reactIntlNext = require("react-intl-next");
|
|
14
14
|
var _analyticsNext = require("@atlaskit/analytics-next");
|
|
15
15
|
var _new = _interopRequireDefault(require("@atlaskit/button/new"));
|
|
16
|
-
var _featureGateJsClient = _interopRequireDefault(require("@atlaskit/feature-gate-js-client"));
|
|
17
16
|
var _modalTransition = _interopRequireDefault(require("@atlaskit/modal-dialog/modal-transition"));
|
|
18
17
|
var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
|
|
19
18
|
var _primitives = require("@atlaskit/primitives");
|
|
@@ -44,7 +43,6 @@ var TeamContainers = exports.TeamContainers = function TeamContainers(_ref) {
|
|
|
44
43
|
isDisplayedOnProfileCard = _ref.isDisplayedOnProfileCard,
|
|
45
44
|
_ref$maxNumberOfConta = _ref.maxNumberOfContainersToShow,
|
|
46
45
|
maxNumberOfContainersToShow = _ref$maxNumberOfConta === void 0 ? MAX_NUMBER_OF_CONTAINERS_TO_SHOW : _ref$maxNumberOfConta;
|
|
47
|
-
var isSupportingAddWebLink = _featureGateJsClient.default.initializeCompleted() && _featureGateJsClient.default.getExperimentValue('team_and_container_web_link', 'isEnabled', false);
|
|
48
46
|
var _useAnalyticsEvents = (0, _analyticsNext.useAnalyticsEvents)(),
|
|
49
47
|
createAnalyticsEvent = _useAnalyticsEvents.createAnalyticsEvent;
|
|
50
48
|
var _useTeamContainers = (0, _useTeamContainers2.useTeamContainers)(teamId),
|
|
@@ -99,7 +97,7 @@ var TeamContainers = exports.TeamContainers = function TeamContainers(_ref) {
|
|
|
99
97
|
productPermissions = _useProductPermission.data,
|
|
100
98
|
productPermissionIsLoading = _useProductPermission.loading;
|
|
101
99
|
(0, _react.useEffect)(function () {
|
|
102
|
-
if (
|
|
100
|
+
if ((0, _platformFeatureFlags.fg)('enable_web_links_in_team_containers')) {
|
|
103
101
|
if (isDisplayedOnProfileCard && filterContainerId) {
|
|
104
102
|
setFilteredTeamLinks(teamLinks.filter(function (container) {
|
|
105
103
|
return container.id !== filterContainerId;
|
|
@@ -116,9 +114,9 @@ var TeamContainers = exports.TeamContainers = function TeamContainers(_ref) {
|
|
|
116
114
|
setFilteredTeamContainers(teamContainers);
|
|
117
115
|
}
|
|
118
116
|
}
|
|
119
|
-
}, [teamLinks, teamContainers,
|
|
117
|
+
}, [teamLinks, teamContainers, isDisplayedOnProfileCard, filterContainerId]);
|
|
120
118
|
(0, _react.useEffect)(function () {
|
|
121
|
-
var containersToCheck =
|
|
119
|
+
var containersToCheck = (0, _platformFeatureFlags.fg)('enable_web_links_in_team_containers') ? filteredTeamLinks : filteredTeamContainers;
|
|
122
120
|
if (containersToCheck.length > maxNumberOfContainersToShow || isDisplayedOnProfileCard) {
|
|
123
121
|
setShowAddContainer({
|
|
124
122
|
Jira: false,
|
|
@@ -146,7 +144,7 @@ var TeamContainers = exports.TeamContainers = function TeamContainers(_ref) {
|
|
|
146
144
|
WebLink: !hasWebLink
|
|
147
145
|
});
|
|
148
146
|
}
|
|
149
|
-
}, [isDisplayedOnProfileCard, productPermissions,
|
|
147
|
+
}, [isDisplayedOnProfileCard, productPermissions, filteredTeamContainers, filteredTeamLinks, maxNumberOfContainersToShow]);
|
|
150
148
|
var handleShowMore = function handleShowMore() {
|
|
151
149
|
setShowMore(!showMore);
|
|
152
150
|
};
|
|
@@ -166,19 +164,19 @@ var TeamContainers = exports.TeamContainers = function TeamContainers(_ref) {
|
|
|
166
164
|
onEditContainerClick(container.id, container.link || '', container.name);
|
|
167
165
|
}
|
|
168
166
|
}, [onEditContainerClick]);
|
|
169
|
-
var LinkedContainerCardComponent = (components === null || components === void 0 ? void 0 : components.ContainerCard) || (
|
|
167
|
+
var LinkedContainerCardComponent = (components === null || components === void 0 ? void 0 : components.ContainerCard) || ((0, _platformFeatureFlags.fg)('enable_web_links_in_team_containers') ? _teamLinkCard.TeamLinkCard : _linkedContainerCard.LinkedContainerCard);
|
|
170
168
|
var handleDisconnect = (0, _react.useCallback)( /*#__PURE__*/function () {
|
|
171
169
|
var _ref2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(containerId) {
|
|
172
170
|
var removedContainer;
|
|
173
171
|
return _regenerator.default.wrap(function _callee$(_context) {
|
|
174
172
|
while (1) switch (_context.prev = _context.next) {
|
|
175
173
|
case 0:
|
|
176
|
-
removedContainer =
|
|
174
|
+
removedContainer = (0, _platformFeatureFlags.fg)('enable_web_links_in_team_containers') ? filteredTeamLinks.find(function (container) {
|
|
177
175
|
return container.id === containerId;
|
|
178
176
|
}) : filteredTeamContainers.find(function (container) {
|
|
179
177
|
return container.id === containerId;
|
|
180
178
|
});
|
|
181
|
-
if (!(
|
|
179
|
+
if (!(removedContainer && (0, _platformFeatureFlags.fg)('enable_web_links_in_team_containers'))) {
|
|
182
180
|
_context.next = 6;
|
|
183
181
|
break;
|
|
184
182
|
}
|
|
@@ -219,14 +217,14 @@ var TeamContainers = exports.TeamContainers = function TeamContainers(_ref) {
|
|
|
219
217
|
return function (_x) {
|
|
220
218
|
return _ref2.apply(this, arguments);
|
|
221
219
|
};
|
|
222
|
-
}(), [actions, createAnalyticsEvent, fireOperationalEvent, filteredTeamContainers, filteredTeamLinks,
|
|
220
|
+
}(), [actions, createAnalyticsEvent, fireOperationalEvent, filteredTeamContainers, filteredTeamLinks, removeTeamLink, teamId, unlinkError]);
|
|
223
221
|
var TeamContainersSkeletonComponent = (components === null || components === void 0 ? void 0 : components.TeamContainersSkeleton) || _teamContainersSkeleton.TeamContainersSkeleton;
|
|
224
222
|
if (loading || productPermissionIsLoading) {
|
|
225
223
|
return /*#__PURE__*/_react.default.createElement(TeamContainersSkeletonComponent, {
|
|
226
224
|
numberOfContainers: maxNumberOfContainersToShow
|
|
227
225
|
});
|
|
228
226
|
}
|
|
229
|
-
if ((
|
|
227
|
+
if (((0, _platformFeatureFlags.fg)('enable_web_links_in_team_containers') ? filteredTeamLinks.length === 0 : filteredTeamContainers.length === 0) && !isDisplayedOnProfileCard && (!productPermissions || !(productPermissions && ((0, _controllers.hasProductPermission)(productPermissions, 'jira') || (0, _controllers.hasProductPermission)(productPermissions, 'confluence') || (0, _controllers.hasProductPermission)(productPermissions, 'loom'))))) {
|
|
230
228
|
return /*#__PURE__*/_react.default.createElement(_noProductAccessEmptyState.NoProductAccessState, null);
|
|
231
229
|
}
|
|
232
230
|
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_primitives.Stack, {
|
|
@@ -234,7 +232,7 @@ var TeamContainers = exports.TeamContainers = function TeamContainers(_ref) {
|
|
|
234
232
|
}, /*#__PURE__*/_react.default.createElement(_primitives.Grid, {
|
|
235
233
|
templateColumns: "repeat(auto-fill, minmax(300px, 1fr))",
|
|
236
234
|
gap: isDisplayedOnProfileCard ? 'space.0' : 'space.100'
|
|
237
|
-
},
|
|
235
|
+
}, (0, _platformFeatureFlags.fg)('enable_web_links_in_team_containers') ? filteredTeamLinks.slice(0, maxNumberOfContainersToShow).map(function (container) {
|
|
238
236
|
return /*#__PURE__*/_react.default.createElement(LinkedContainerCardComponent, {
|
|
239
237
|
key: container.id,
|
|
240
238
|
containerType: container.type,
|
|
@@ -288,12 +286,12 @@ var TeamContainers = exports.TeamContainers = function TeamContainers(_ref) {
|
|
|
288
286
|
return _onAddAContainerClick(e, 'Loom');
|
|
289
287
|
},
|
|
290
288
|
containerType: "LoomSpace"
|
|
291
|
-
}),
|
|
289
|
+
}), showAddContainer.WebLink && (0, _platformFeatureFlags.fg)('enable_web_links_in_team_containers') && /*#__PURE__*/_react.default.createElement(_addContainerCard.AddContainerCard, {
|
|
292
290
|
onAddAContainerClick: function onAddAContainerClick(e) {
|
|
293
291
|
return _onAddAContainerClick(e, 'WebLink');
|
|
294
292
|
},
|
|
295
293
|
containerType: "WebLink"
|
|
296
|
-
}), showMore &&
|
|
294
|
+
}), showMore && (0, _platformFeatureFlags.fg)('enable_web_links_in_team_containers') ? filteredTeamLinks.slice(maxNumberOfContainersToShow).map(function (container) {
|
|
297
295
|
return /*#__PURE__*/_react.default.createElement(LinkedContainerCardComponent, {
|
|
298
296
|
key: container.id,
|
|
299
297
|
containerType: container.type,
|
|
@@ -332,7 +330,7 @@ var TeamContainers = exports.TeamContainers = function TeamContainers(_ref) {
|
|
|
332
330
|
});
|
|
333
331
|
}
|
|
334
332
|
});
|
|
335
|
-
})), (
|
|
333
|
+
})), ((0, _platformFeatureFlags.fg)('enable_web_links_in_team_containers') ? filteredTeamLinks.length : filteredTeamContainers.length) > maxNumberOfContainersToShow && /*#__PURE__*/_react.default.createElement(_primitives.Inline, null, /*#__PURE__*/_react.default.createElement(_new.default, {
|
|
336
334
|
appearance: "subtle",
|
|
337
335
|
onClick: handleShowMore
|
|
338
336
|
}, 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, {
|
|
@@ -31,7 +31,7 @@ export const useTeamLinksAndContainers = (teamId, enableContainers = true) => {
|
|
|
31
31
|
}, [getTeamWebLinks, teamId]);
|
|
32
32
|
const webLinkContainers = useMemo(() => webLinksToContainers(links, linkIcons), [links, linkIcons]);
|
|
33
33
|
const allContainers = useMemo(() => [...teamContainers, ...webLinkContainers], [teamContainers, webLinkContainers]);
|
|
34
|
-
const canAddMoreLink = useMemo(() => allContainers.length
|
|
34
|
+
const canAddMoreLink = useMemo(() => allContainers.length < MAX_LINKS_LIMIT, [allContainers.length]);
|
|
35
35
|
const addTeamLink = useCallback(async containerOrWebLink => {
|
|
36
36
|
if (isNewTeamWebLink(containerOrWebLink)) {
|
|
37
37
|
return await createTeamWebLink(teamId, containerOrWebLink);
|
|
@@ -2,7 +2,6 @@ import React, { useCallback, useEffect, useState } from 'react';
|
|
|
2
2
|
import { defineMessages, FormattedMessage } from 'react-intl-next';
|
|
3
3
|
import { useAnalyticsEvents } from '@atlaskit/analytics-next';
|
|
4
4
|
import Button from '@atlaskit/button/new';
|
|
5
|
-
import FeatureGates from '@atlaskit/feature-gate-js-client';
|
|
6
5
|
import ModalTransition from '@atlaskit/modal-dialog/modal-transition';
|
|
7
6
|
import { fg } from '@atlaskit/platform-feature-flags';
|
|
8
7
|
import { Grid, Inline, Stack } from '@atlaskit/primitives';
|
|
@@ -32,7 +31,6 @@ export const TeamContainers = ({
|
|
|
32
31
|
isDisplayedOnProfileCard,
|
|
33
32
|
maxNumberOfContainersToShow = MAX_NUMBER_OF_CONTAINERS_TO_SHOW
|
|
34
33
|
}) => {
|
|
35
|
-
const isSupportingAddWebLink = FeatureGates.initializeCompleted() && FeatureGates.getExperimentValue('team_and_container_web_link', 'isEnabled', false);
|
|
36
34
|
const {
|
|
37
35
|
createAnalyticsEvent
|
|
38
36
|
} = useAnalyticsEvents();
|
|
@@ -71,7 +69,7 @@ export const TeamContainers = ({
|
|
|
71
69
|
cloudId
|
|
72
70
|
});
|
|
73
71
|
useEffect(() => {
|
|
74
|
-
if (
|
|
72
|
+
if (fg('enable_web_links_in_team_containers')) {
|
|
75
73
|
if (isDisplayedOnProfileCard && filterContainerId) {
|
|
76
74
|
setFilteredTeamLinks(teamLinks.filter(container => container.id !== filterContainerId));
|
|
77
75
|
} else {
|
|
@@ -84,9 +82,9 @@ export const TeamContainers = ({
|
|
|
84
82
|
setFilteredTeamContainers(teamContainers);
|
|
85
83
|
}
|
|
86
84
|
}
|
|
87
|
-
}, [teamLinks, teamContainers,
|
|
85
|
+
}, [teamLinks, teamContainers, isDisplayedOnProfileCard, filterContainerId]);
|
|
88
86
|
useEffect(() => {
|
|
89
|
-
const containersToCheck =
|
|
87
|
+
const containersToCheck = fg('enable_web_links_in_team_containers') ? filteredTeamLinks : filteredTeamContainers;
|
|
90
88
|
if (containersToCheck.length > maxNumberOfContainersToShow || isDisplayedOnProfileCard) {
|
|
91
89
|
setShowAddContainer({
|
|
92
90
|
Jira: false,
|
|
@@ -106,7 +104,7 @@ export const TeamContainers = ({
|
|
|
106
104
|
WebLink: !hasWebLink
|
|
107
105
|
});
|
|
108
106
|
}
|
|
109
|
-
}, [isDisplayedOnProfileCard, productPermissions,
|
|
107
|
+
}, [isDisplayedOnProfileCard, productPermissions, filteredTeamContainers, filteredTeamLinks, maxNumberOfContainersToShow]);
|
|
110
108
|
const handleShowMore = () => {
|
|
111
109
|
setShowMore(!showMore);
|
|
112
110
|
};
|
|
@@ -126,10 +124,10 @@ export const TeamContainers = ({
|
|
|
126
124
|
onEditContainerClick(container.id, container.link || '', container.name);
|
|
127
125
|
}
|
|
128
126
|
}, [onEditContainerClick]);
|
|
129
|
-
const LinkedContainerCardComponent = (components === null || components === void 0 ? void 0 : components.ContainerCard) || (
|
|
127
|
+
const LinkedContainerCardComponent = (components === null || components === void 0 ? void 0 : components.ContainerCard) || (fg('enable_web_links_in_team_containers') ? TeamLinkCard : LinkedContainerCard);
|
|
130
128
|
const handleDisconnect = useCallback(async containerId => {
|
|
131
|
-
const removedContainer =
|
|
132
|
-
if (
|
|
129
|
+
const removedContainer = fg('enable_web_links_in_team_containers') ? filteredTeamLinks.find(container => container.id === containerId) : filteredTeamContainers.find(container => container.id === containerId);
|
|
130
|
+
if (removedContainer && fg('enable_web_links_in_team_containers')) {
|
|
133
131
|
await removeTeamLink(removedContainer);
|
|
134
132
|
} else {
|
|
135
133
|
await actions.unlinkTeamContainers(teamId, containerId);
|
|
@@ -153,14 +151,14 @@ export const TeamContainers = ({
|
|
|
153
151
|
}
|
|
154
152
|
});
|
|
155
153
|
}
|
|
156
|
-
}, [actions, createAnalyticsEvent, fireOperationalEvent, filteredTeamContainers, filteredTeamLinks,
|
|
154
|
+
}, [actions, createAnalyticsEvent, fireOperationalEvent, filteredTeamContainers, filteredTeamLinks, removeTeamLink, teamId, unlinkError]);
|
|
157
155
|
const TeamContainersSkeletonComponent = (components === null || components === void 0 ? void 0 : components.TeamContainersSkeleton) || TeamContainersSkeleton;
|
|
158
156
|
if (loading || productPermissionIsLoading) {
|
|
159
157
|
return /*#__PURE__*/React.createElement(TeamContainersSkeletonComponent, {
|
|
160
158
|
numberOfContainers: maxNumberOfContainersToShow
|
|
161
159
|
});
|
|
162
160
|
}
|
|
163
|
-
if ((
|
|
161
|
+
if ((fg('enable_web_links_in_team_containers') ? filteredTeamLinks.length === 0 : filteredTeamContainers.length === 0) && !isDisplayedOnProfileCard && (!productPermissions || !(productPermissions && (hasProductPermission(productPermissions, 'jira') || hasProductPermission(productPermissions, 'confluence') || hasProductPermission(productPermissions, 'loom'))))) {
|
|
164
162
|
return /*#__PURE__*/React.createElement(NoProductAccessState, null);
|
|
165
163
|
}
|
|
166
164
|
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Stack, {
|
|
@@ -168,7 +166,7 @@ export const TeamContainers = ({
|
|
|
168
166
|
}, /*#__PURE__*/React.createElement(Grid, {
|
|
169
167
|
templateColumns: "repeat(auto-fill, minmax(300px, 1fr))",
|
|
170
168
|
gap: isDisplayedOnProfileCard ? 'space.0' : 'space.100'
|
|
171
|
-
},
|
|
169
|
+
}, fg('enable_web_links_in_team_containers') ? filteredTeamLinks.slice(0, maxNumberOfContainersToShow).map(container => {
|
|
172
170
|
return /*#__PURE__*/React.createElement(LinkedContainerCardComponent, {
|
|
173
171
|
key: container.id,
|
|
174
172
|
containerType: container.type,
|
|
@@ -210,10 +208,10 @@ export const TeamContainers = ({
|
|
|
210
208
|
}), showAddContainer.Loom && fg('loom_tab_in_container_linker_team_profile_page') && /*#__PURE__*/React.createElement(AddContainerCard, {
|
|
211
209
|
onAddAContainerClick: e => onAddAContainerClick(e, 'Loom'),
|
|
212
210
|
containerType: "LoomSpace"
|
|
213
|
-
}),
|
|
211
|
+
}), showAddContainer.WebLink && fg('enable_web_links_in_team_containers') && /*#__PURE__*/React.createElement(AddContainerCard, {
|
|
214
212
|
onAddAContainerClick: e => onAddAContainerClick(e, 'WebLink'),
|
|
215
213
|
containerType: "WebLink"
|
|
216
|
-
}), showMore &&
|
|
214
|
+
}), showMore && fg('enable_web_links_in_team_containers') ? filteredTeamLinks.slice(maxNumberOfContainersToShow).map(container => {
|
|
217
215
|
return /*#__PURE__*/React.createElement(LinkedContainerCardComponent, {
|
|
218
216
|
key: container.id,
|
|
219
217
|
containerType: container.type,
|
|
@@ -246,7 +244,7 @@ export const TeamContainers = ({
|
|
|
246
244
|
containerName: container.name
|
|
247
245
|
})
|
|
248
246
|
});
|
|
249
|
-
})), (
|
|
247
|
+
})), (fg('enable_web_links_in_team_containers') ? filteredTeamLinks.length : filteredTeamContainers.length) > maxNumberOfContainersToShow && /*#__PURE__*/React.createElement(Inline, null, /*#__PURE__*/React.createElement(Button, {
|
|
250
248
|
appearance: "subtle",
|
|
251
249
|
onClick: handleShowMore
|
|
252
250
|
}, showMore ? /*#__PURE__*/React.createElement(FormattedMessage, messages.showLess) : /*#__PURE__*/React.createElement(FormattedMessage, messages.showMore)))), /*#__PURE__*/React.createElement(ModalTransition, null, isDisconnectDialogOpen && selectedContainerDetails && /*#__PURE__*/React.createElement(DisconnectDialogLazy, {
|
|
@@ -44,7 +44,7 @@ export var useTeamLinksAndContainers = function useTeamLinksAndContainers(teamId
|
|
|
44
44
|
return [].concat(_toConsumableArray(teamContainers), _toConsumableArray(webLinkContainers));
|
|
45
45
|
}, [teamContainers, webLinkContainers]);
|
|
46
46
|
var canAddMoreLink = useMemo(function () {
|
|
47
|
-
return allContainers.length
|
|
47
|
+
return allContainers.length < MAX_LINKS_LIMIT;
|
|
48
48
|
}, [allContainers.length]);
|
|
49
49
|
var addTeamLink = useCallback( /*#__PURE__*/function () {
|
|
50
50
|
var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(containerOrWebLink) {
|
|
@@ -5,7 +5,6 @@ import React, { useCallback, useEffect, useState } from 'react';
|
|
|
5
5
|
import { defineMessages, FormattedMessage } from 'react-intl-next';
|
|
6
6
|
import { useAnalyticsEvents } from '@atlaskit/analytics-next';
|
|
7
7
|
import Button from '@atlaskit/button/new';
|
|
8
|
-
import FeatureGates from '@atlaskit/feature-gate-js-client';
|
|
9
8
|
import ModalTransition from '@atlaskit/modal-dialog/modal-transition';
|
|
10
9
|
import { fg } from '@atlaskit/platform-feature-flags';
|
|
11
10
|
import { Grid, Inline, Stack } from '@atlaskit/primitives';
|
|
@@ -35,7 +34,6 @@ export var TeamContainers = function TeamContainers(_ref) {
|
|
|
35
34
|
isDisplayedOnProfileCard = _ref.isDisplayedOnProfileCard,
|
|
36
35
|
_ref$maxNumberOfConta = _ref.maxNumberOfContainersToShow,
|
|
37
36
|
maxNumberOfContainersToShow = _ref$maxNumberOfConta === void 0 ? MAX_NUMBER_OF_CONTAINERS_TO_SHOW : _ref$maxNumberOfConta;
|
|
38
|
-
var isSupportingAddWebLink = FeatureGates.initializeCompleted() && FeatureGates.getExperimentValue('team_and_container_web_link', 'isEnabled', false);
|
|
39
37
|
var _useAnalyticsEvents = useAnalyticsEvents(),
|
|
40
38
|
createAnalyticsEvent = _useAnalyticsEvents.createAnalyticsEvent;
|
|
41
39
|
var _useTeamContainers = useTeamContainers(teamId),
|
|
@@ -90,7 +88,7 @@ export var TeamContainers = function TeamContainers(_ref) {
|
|
|
90
88
|
productPermissions = _useProductPermission.data,
|
|
91
89
|
productPermissionIsLoading = _useProductPermission.loading;
|
|
92
90
|
useEffect(function () {
|
|
93
|
-
if (
|
|
91
|
+
if (fg('enable_web_links_in_team_containers')) {
|
|
94
92
|
if (isDisplayedOnProfileCard && filterContainerId) {
|
|
95
93
|
setFilteredTeamLinks(teamLinks.filter(function (container) {
|
|
96
94
|
return container.id !== filterContainerId;
|
|
@@ -107,9 +105,9 @@ export var TeamContainers = function TeamContainers(_ref) {
|
|
|
107
105
|
setFilteredTeamContainers(teamContainers);
|
|
108
106
|
}
|
|
109
107
|
}
|
|
110
|
-
}, [teamLinks, teamContainers,
|
|
108
|
+
}, [teamLinks, teamContainers, isDisplayedOnProfileCard, filterContainerId]);
|
|
111
109
|
useEffect(function () {
|
|
112
|
-
var containersToCheck =
|
|
110
|
+
var containersToCheck = fg('enable_web_links_in_team_containers') ? filteredTeamLinks : filteredTeamContainers;
|
|
113
111
|
if (containersToCheck.length > maxNumberOfContainersToShow || isDisplayedOnProfileCard) {
|
|
114
112
|
setShowAddContainer({
|
|
115
113
|
Jira: false,
|
|
@@ -137,7 +135,7 @@ export var TeamContainers = function TeamContainers(_ref) {
|
|
|
137
135
|
WebLink: !hasWebLink
|
|
138
136
|
});
|
|
139
137
|
}
|
|
140
|
-
}, [isDisplayedOnProfileCard, productPermissions,
|
|
138
|
+
}, [isDisplayedOnProfileCard, productPermissions, filteredTeamContainers, filteredTeamLinks, maxNumberOfContainersToShow]);
|
|
141
139
|
var handleShowMore = function handleShowMore() {
|
|
142
140
|
setShowMore(!showMore);
|
|
143
141
|
};
|
|
@@ -157,19 +155,19 @@ export var TeamContainers = function TeamContainers(_ref) {
|
|
|
157
155
|
onEditContainerClick(container.id, container.link || '', container.name);
|
|
158
156
|
}
|
|
159
157
|
}, [onEditContainerClick]);
|
|
160
|
-
var LinkedContainerCardComponent = (components === null || components === void 0 ? void 0 : components.ContainerCard) || (
|
|
158
|
+
var LinkedContainerCardComponent = (components === null || components === void 0 ? void 0 : components.ContainerCard) || (fg('enable_web_links_in_team_containers') ? TeamLinkCard : LinkedContainerCard);
|
|
161
159
|
var handleDisconnect = useCallback( /*#__PURE__*/function () {
|
|
162
160
|
var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(containerId) {
|
|
163
161
|
var removedContainer;
|
|
164
162
|
return _regeneratorRuntime.wrap(function _callee$(_context) {
|
|
165
163
|
while (1) switch (_context.prev = _context.next) {
|
|
166
164
|
case 0:
|
|
167
|
-
removedContainer =
|
|
165
|
+
removedContainer = fg('enable_web_links_in_team_containers') ? filteredTeamLinks.find(function (container) {
|
|
168
166
|
return container.id === containerId;
|
|
169
167
|
}) : filteredTeamContainers.find(function (container) {
|
|
170
168
|
return container.id === containerId;
|
|
171
169
|
});
|
|
172
|
-
if (!(
|
|
170
|
+
if (!(removedContainer && fg('enable_web_links_in_team_containers'))) {
|
|
173
171
|
_context.next = 6;
|
|
174
172
|
break;
|
|
175
173
|
}
|
|
@@ -210,14 +208,14 @@ export var TeamContainers = function TeamContainers(_ref) {
|
|
|
210
208
|
return function (_x) {
|
|
211
209
|
return _ref2.apply(this, arguments);
|
|
212
210
|
};
|
|
213
|
-
}(), [actions, createAnalyticsEvent, fireOperationalEvent, filteredTeamContainers, filteredTeamLinks,
|
|
211
|
+
}(), [actions, createAnalyticsEvent, fireOperationalEvent, filteredTeamContainers, filteredTeamLinks, removeTeamLink, teamId, unlinkError]);
|
|
214
212
|
var TeamContainersSkeletonComponent = (components === null || components === void 0 ? void 0 : components.TeamContainersSkeleton) || TeamContainersSkeleton;
|
|
215
213
|
if (loading || productPermissionIsLoading) {
|
|
216
214
|
return /*#__PURE__*/React.createElement(TeamContainersSkeletonComponent, {
|
|
217
215
|
numberOfContainers: maxNumberOfContainersToShow
|
|
218
216
|
});
|
|
219
217
|
}
|
|
220
|
-
if ((
|
|
218
|
+
if ((fg('enable_web_links_in_team_containers') ? filteredTeamLinks.length === 0 : filteredTeamContainers.length === 0) && !isDisplayedOnProfileCard && (!productPermissions || !(productPermissions && (hasProductPermission(productPermissions, 'jira') || hasProductPermission(productPermissions, 'confluence') || hasProductPermission(productPermissions, 'loom'))))) {
|
|
221
219
|
return /*#__PURE__*/React.createElement(NoProductAccessState, null);
|
|
222
220
|
}
|
|
223
221
|
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Stack, {
|
|
@@ -225,7 +223,7 @@ export var TeamContainers = function TeamContainers(_ref) {
|
|
|
225
223
|
}, /*#__PURE__*/React.createElement(Grid, {
|
|
226
224
|
templateColumns: "repeat(auto-fill, minmax(300px, 1fr))",
|
|
227
225
|
gap: isDisplayedOnProfileCard ? 'space.0' : 'space.100'
|
|
228
|
-
},
|
|
226
|
+
}, fg('enable_web_links_in_team_containers') ? filteredTeamLinks.slice(0, maxNumberOfContainersToShow).map(function (container) {
|
|
229
227
|
return /*#__PURE__*/React.createElement(LinkedContainerCardComponent, {
|
|
230
228
|
key: container.id,
|
|
231
229
|
containerType: container.type,
|
|
@@ -279,12 +277,12 @@ export var TeamContainers = function TeamContainers(_ref) {
|
|
|
279
277
|
return _onAddAContainerClick(e, 'Loom');
|
|
280
278
|
},
|
|
281
279
|
containerType: "LoomSpace"
|
|
282
|
-
}),
|
|
280
|
+
}), showAddContainer.WebLink && fg('enable_web_links_in_team_containers') && /*#__PURE__*/React.createElement(AddContainerCard, {
|
|
283
281
|
onAddAContainerClick: function onAddAContainerClick(e) {
|
|
284
282
|
return _onAddAContainerClick(e, 'WebLink');
|
|
285
283
|
},
|
|
286
284
|
containerType: "WebLink"
|
|
287
|
-
}), showMore &&
|
|
285
|
+
}), showMore && fg('enable_web_links_in_team_containers') ? filteredTeamLinks.slice(maxNumberOfContainersToShow).map(function (container) {
|
|
288
286
|
return /*#__PURE__*/React.createElement(LinkedContainerCardComponent, {
|
|
289
287
|
key: container.id,
|
|
290
288
|
containerType: container.type,
|
|
@@ -323,7 +321,7 @@ export var TeamContainers = function TeamContainers(_ref) {
|
|
|
323
321
|
});
|
|
324
322
|
}
|
|
325
323
|
});
|
|
326
|
-
})), (
|
|
324
|
+
})), (fg('enable_web_links_in_team_containers') ? filteredTeamLinks.length : filteredTeamContainers.length) > maxNumberOfContainersToShow && /*#__PURE__*/React.createElement(Inline, null, /*#__PURE__*/React.createElement(Button, {
|
|
327
325
|
appearance: "subtle",
|
|
328
326
|
onClick: handleShowMore
|
|
329
327
|
}, showMore ? /*#__PURE__*/React.createElement(FormattedMessage, messages.showLess) : /*#__PURE__*/React.createElement(FormattedMessage, messages.showMore)))), /*#__PURE__*/React.createElement(ModalTransition, null, isDisconnectDialogOpen && selectedContainerDetails && /*#__PURE__*/React.createElement(DisconnectDialogLazy, {
|
package/package.json
CHANGED
|
@@ -40,7 +40,7 @@
|
|
|
40
40
|
"@atlaskit/icon": "^26.4.0",
|
|
41
41
|
"@atlaskit/image": "^3.0.0",
|
|
42
42
|
"@atlaskit/link": "^3.2.0",
|
|
43
|
-
"@atlaskit/logo": "^19.
|
|
43
|
+
"@atlaskit/logo": "^19.1.0",
|
|
44
44
|
"@atlaskit/modal-dialog": "^14.2.0",
|
|
45
45
|
"@atlaskit/people-teams-ui-public": "^3.1.0",
|
|
46
46
|
"@atlaskit/platform-feature-flags": "^1.1.0",
|
|
@@ -68,6 +68,7 @@
|
|
|
68
68
|
"@af/visual-regression": "workspace:^",
|
|
69
69
|
"@atlaskit/ssr": "workspace:^",
|
|
70
70
|
"@atlaskit/visual-regression": "workspace:^",
|
|
71
|
+
"@atlassian/feature-flags-test-utils": "^0.3.0",
|
|
71
72
|
"@testing-library/react": "^13.4.0",
|
|
72
73
|
"@testing-library/react-hooks": "^8.0.1",
|
|
73
74
|
"@testing-library/user-event": "^14.4.3",
|
|
@@ -113,7 +114,7 @@
|
|
|
113
114
|
}
|
|
114
115
|
},
|
|
115
116
|
"name": "@atlaskit/teams-public",
|
|
116
|
-
"version": "0.
|
|
117
|
+
"version": "0.38.1",
|
|
117
118
|
"description": "Public components related to teams",
|
|
118
119
|
"author": "Atlassian Pty Ltd",
|
|
119
120
|
"license": "Apache-2.0",
|
|
@@ -132,6 +133,9 @@
|
|
|
132
133
|
},
|
|
133
134
|
"should-render-to-parent-should-be-true-people-and-": {
|
|
134
135
|
"type": "boolean"
|
|
136
|
+
},
|
|
137
|
+
"enable_web_links_in_team_containers": {
|
|
138
|
+
"type": "boolean"
|
|
135
139
|
}
|
|
136
140
|
}
|
|
137
141
|
}
|