@boomerang-io/carbon-addons-boomerang-react 4.6.14-beta.0 → 4.6.14-beta.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.
|
@@ -26,6 +26,9 @@ const headerDropdownMenuContainerClassname = `${settings.prefix}--header-dropdow
|
|
|
26
26
|
const headerDropdownMenuLoadingClassname = `${settings.prefix}--header-dropdown-menu-loading`;
|
|
27
27
|
const headerDropdownMenuSuccessClassname = `${settings.prefix}--header-dropdown-menu-success`;
|
|
28
28
|
const headerDropdownMenuClassname = `${settings.prefix}--header-dropdown-menu`;
|
|
29
|
+
const headerDropdownMenuContentClassname = `${settings.prefix}--header-dropdown-menu-content`;
|
|
30
|
+
const headerDropdownMenuContentTextClassname = `${settings.prefix}--header-dropdown-menu-content-text`;
|
|
31
|
+
const headerDropdownMenuContentIconClassname = `${settings.prefix}--header-dropdown-menu-content-icon`;
|
|
29
32
|
const headerDropdownMenuListClassname = `${settings.prefix}--bmrg-header-drop-down`;
|
|
30
33
|
const headerDropdownMenuItemContainerClassname = `${settings.prefix}--header-dropdown-menu-item-container`;
|
|
31
34
|
const headerDropdownMenuItemClassname = `${settings.prefix}--header-dropdown-menu-item`;
|
|
@@ -94,6 +97,12 @@ function HeaderTeamSwitcher({ analyticsHelpers, baseServicesUrl, createJoinTeamT
|
|
|
94
97
|
await mutateUserProfile({ baseServicesUrl, body });
|
|
95
98
|
}
|
|
96
99
|
};
|
|
100
|
+
const handleNoTeamsToSelect = async () => {
|
|
101
|
+
const body = {
|
|
102
|
+
teamInstanceSwitcherDefault: null,
|
|
103
|
+
};
|
|
104
|
+
await mutateUserProfile({ baseServicesUrl, body });
|
|
105
|
+
};
|
|
97
106
|
if (userHasTeams) {
|
|
98
107
|
if (!userTeamInstanceSwitcherDefault) {
|
|
99
108
|
if (userHasPersonalTeam) {
|
|
@@ -125,16 +134,22 @@ function HeaderTeamSwitcher({ analyticsHelpers, baseServicesUrl, createJoinTeamT
|
|
|
125
134
|
const newSelectedTeam = allTeams.find((team) => team.id === userTeamInstanceSwitcherDefault);
|
|
126
135
|
handleSelectTeam({ team: newSelectedTeam });
|
|
127
136
|
}
|
|
137
|
+
// if teams data loaded but there are no teams
|
|
138
|
+
}
|
|
139
|
+
else if (Boolean(userTeams?.data) || Boolean(teamsQuery?.data)) {
|
|
140
|
+
handleNoTeamsToSelect();
|
|
128
141
|
}
|
|
129
142
|
}, [
|
|
130
143
|
baseServicesUrl,
|
|
131
144
|
hasUserTeams,
|
|
132
145
|
mutateUserProfile,
|
|
133
146
|
selectedTeam,
|
|
147
|
+
teamsQuery?.data,
|
|
134
148
|
teamsQuery?.data?.accountTeams,
|
|
135
149
|
teamsQuery?.data?.personalTeam,
|
|
136
150
|
teamsQuery?.data?.standardTeams,
|
|
137
151
|
userTeamInstanceSwitcherDefault,
|
|
152
|
+
userTeams?.data,
|
|
138
153
|
userTeams?.data?.accountTeams,
|
|
139
154
|
userTeams?.data?.personalTeam,
|
|
140
155
|
userTeams?.data?.standardTeams,
|
|
@@ -230,16 +245,19 @@ function HeaderTeamSwitcher({ analyticsHelpers, baseServicesUrl, createJoinTeamT
|
|
|
230
245
|
});
|
|
231
246
|
sortedStandardTeamsWithNamesToDisplay = sortBy__default.default(newStandardTeams, ["nameToDisplay"]);
|
|
232
247
|
}
|
|
233
|
-
let selectedTeamName = selectedTeam?.displayName
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
248
|
+
let selectedTeamName = selectedTeam?.displayName
|
|
249
|
+
? selectedTeam.displayName
|
|
250
|
+
: selectedTeam?.name
|
|
251
|
+
? selectedTeam?.name
|
|
252
|
+
: "No team selected";
|
|
237
253
|
const isPartnerUser = Boolean(user?.type === UserType.USER_PLATFORM_ROLE.Partner);
|
|
238
254
|
return (React__default.default.createElement("div", { className: headerDropdownMenuContainerClassname },
|
|
239
255
|
isLoadingTeamSwitcher ? (React__default.default.createElement("div", { className: headerDropdownMenuLoadingClassname },
|
|
240
256
|
React__default.default.createElement(react.InlineLoading, null))) : isSuccessTeamSwitcher ? (React__default.default.createElement("div", { className: headerDropdownMenuSuccessClassname },
|
|
241
257
|
React__default.default.createElement(icons.CheckmarkFilled, null))) : null,
|
|
242
|
-
React__default.default.createElement(react.HeaderMenu, { id: "header-team-switcher-menu", "aria-label": menuAriaLabelRecord, className: headerDropdownMenuClassname,
|
|
258
|
+
React__default.default.createElement(react.HeaderMenu, { id: "header-team-switcher-menu", "aria-label": menuAriaLabelRecord, className: headerDropdownMenuClassname, renderMenuContent: () => (React__default.default.createElement("div", { className: headerDropdownMenuContentClassname },
|
|
259
|
+
React__default.default.createElement("p", { title: selectedTeamName, className: headerDropdownMenuContentTextClassname }, selectedTeamName),
|
|
260
|
+
React__default.default.createElement(icons.ChevronDown, { className: headerDropdownMenuContentIconClassname }))), onClick: handleHeaderMenuClick, "data-testid": "header-team-switcher-menu" },
|
|
243
261
|
React__default.default.createElement(HeaderMenu.default, { "aria-labelledby": menuButtonId, className: headerDropdownMenuListClassname, id: menuListId },
|
|
244
262
|
!isPartnerUser && (React__default.default.createElement(react.HeaderMenuItem, { id: "header-team-switcher-create-join-team-button", className: headerTeamSwitcherCreateTeamButtonContainerClassname, onClick: handleCreateJoinTeamClick,
|
|
245
263
|
// eslint-disable-next-line no-script-url
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import React, { useState, useEffect } from 'react';
|
|
2
2
|
import { useMutation } from 'react-query';
|
|
3
3
|
import { InlineLoading, HeaderMenu, HeaderMenuItem } from '@carbon/react';
|
|
4
|
-
import { CheckmarkFilled, AddAlt, GroupAccount
|
|
4
|
+
import { CheckmarkFilled, ChevronDown, AddAlt, GroupAccount } from '@carbon/react/icons';
|
|
5
5
|
import sortBy from 'lodash.sortby';
|
|
6
6
|
import HeaderMenu$1 from './HeaderMenu.js';
|
|
7
7
|
import { resolver } from '../../config/servicesConfig.js';
|
|
@@ -17,6 +17,9 @@ const headerDropdownMenuContainerClassname = `${prefix}--header-dropdown-menu-co
|
|
|
17
17
|
const headerDropdownMenuLoadingClassname = `${prefix}--header-dropdown-menu-loading`;
|
|
18
18
|
const headerDropdownMenuSuccessClassname = `${prefix}--header-dropdown-menu-success`;
|
|
19
19
|
const headerDropdownMenuClassname = `${prefix}--header-dropdown-menu`;
|
|
20
|
+
const headerDropdownMenuContentClassname = `${prefix}--header-dropdown-menu-content`;
|
|
21
|
+
const headerDropdownMenuContentTextClassname = `${prefix}--header-dropdown-menu-content-text`;
|
|
22
|
+
const headerDropdownMenuContentIconClassname = `${prefix}--header-dropdown-menu-content-icon`;
|
|
20
23
|
const headerDropdownMenuListClassname = `${prefix}--bmrg-header-drop-down`;
|
|
21
24
|
const headerDropdownMenuItemContainerClassname = `${prefix}--header-dropdown-menu-item-container`;
|
|
22
25
|
const headerDropdownMenuItemClassname = `${prefix}--header-dropdown-menu-item`;
|
|
@@ -85,6 +88,12 @@ function HeaderTeamSwitcher({ analyticsHelpers, baseServicesUrl, createJoinTeamT
|
|
|
85
88
|
await mutateUserProfile({ baseServicesUrl, body });
|
|
86
89
|
}
|
|
87
90
|
};
|
|
91
|
+
const handleNoTeamsToSelect = async () => {
|
|
92
|
+
const body = {
|
|
93
|
+
teamInstanceSwitcherDefault: null,
|
|
94
|
+
};
|
|
95
|
+
await mutateUserProfile({ baseServicesUrl, body });
|
|
96
|
+
};
|
|
88
97
|
if (userHasTeams) {
|
|
89
98
|
if (!userTeamInstanceSwitcherDefault) {
|
|
90
99
|
if (userHasPersonalTeam) {
|
|
@@ -116,16 +125,22 @@ function HeaderTeamSwitcher({ analyticsHelpers, baseServicesUrl, createJoinTeamT
|
|
|
116
125
|
const newSelectedTeam = allTeams.find((team) => team.id === userTeamInstanceSwitcherDefault);
|
|
117
126
|
handleSelectTeam({ team: newSelectedTeam });
|
|
118
127
|
}
|
|
128
|
+
// if teams data loaded but there are no teams
|
|
129
|
+
}
|
|
130
|
+
else if (Boolean(userTeams?.data) || Boolean(teamsQuery?.data)) {
|
|
131
|
+
handleNoTeamsToSelect();
|
|
119
132
|
}
|
|
120
133
|
}, [
|
|
121
134
|
baseServicesUrl,
|
|
122
135
|
hasUserTeams,
|
|
123
136
|
mutateUserProfile,
|
|
124
137
|
selectedTeam,
|
|
138
|
+
teamsQuery?.data,
|
|
125
139
|
teamsQuery?.data?.accountTeams,
|
|
126
140
|
teamsQuery?.data?.personalTeam,
|
|
127
141
|
teamsQuery?.data?.standardTeams,
|
|
128
142
|
userTeamInstanceSwitcherDefault,
|
|
143
|
+
userTeams?.data,
|
|
129
144
|
userTeams?.data?.accountTeams,
|
|
130
145
|
userTeams?.data?.personalTeam,
|
|
131
146
|
userTeams?.data?.standardTeams,
|
|
@@ -221,16 +236,19 @@ function HeaderTeamSwitcher({ analyticsHelpers, baseServicesUrl, createJoinTeamT
|
|
|
221
236
|
});
|
|
222
237
|
sortedStandardTeamsWithNamesToDisplay = sortBy(newStandardTeams, ["nameToDisplay"]);
|
|
223
238
|
}
|
|
224
|
-
let selectedTeamName = selectedTeam?.displayName
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
239
|
+
let selectedTeamName = selectedTeam?.displayName
|
|
240
|
+
? selectedTeam.displayName
|
|
241
|
+
: selectedTeam?.name
|
|
242
|
+
? selectedTeam?.name
|
|
243
|
+
: "No team selected";
|
|
228
244
|
const isPartnerUser = Boolean(user?.type === USER_PLATFORM_ROLE.Partner);
|
|
229
245
|
return (React.createElement("div", { className: headerDropdownMenuContainerClassname },
|
|
230
246
|
isLoadingTeamSwitcher ? (React.createElement("div", { className: headerDropdownMenuLoadingClassname },
|
|
231
247
|
React.createElement(InlineLoading, null))) : isSuccessTeamSwitcher ? (React.createElement("div", { className: headerDropdownMenuSuccessClassname },
|
|
232
248
|
React.createElement(CheckmarkFilled, null))) : null,
|
|
233
|
-
React.createElement(HeaderMenu, { id: "header-team-switcher-menu", "aria-label": menuAriaLabelRecord, className: headerDropdownMenuClassname,
|
|
249
|
+
React.createElement(HeaderMenu, { id: "header-team-switcher-menu", "aria-label": menuAriaLabelRecord, className: headerDropdownMenuClassname, renderMenuContent: () => (React.createElement("div", { className: headerDropdownMenuContentClassname },
|
|
250
|
+
React.createElement("p", { title: selectedTeamName, className: headerDropdownMenuContentTextClassname }, selectedTeamName),
|
|
251
|
+
React.createElement(ChevronDown, { className: headerDropdownMenuContentIconClassname }))), onClick: handleHeaderMenuClick, "data-testid": "header-team-switcher-menu" },
|
|
234
252
|
React.createElement(HeaderMenu$1, { "aria-labelledby": menuButtonId, className: headerDropdownMenuListClassname, id: menuListId },
|
|
235
253
|
!isPartnerUser && (React.createElement(HeaderMenuItem, { id: "header-team-switcher-create-join-team-button", className: headerTeamSwitcherCreateTeamButtonContainerClassname, onClick: handleCreateJoinTeamClick,
|
|
236
254
|
// eslint-disable-next-line no-script-url
|
package/package.json
CHANGED
|
@@ -39,13 +39,40 @@ IBM Confidential
|
|
|
39
39
|
overflow: hidden;
|
|
40
40
|
width: 100%;
|
|
41
41
|
|
|
42
|
-
.#{$prefix}--
|
|
42
|
+
.#{$prefix}--header-dropdown-menu-content {
|
|
43
|
+
align-items: center;
|
|
44
|
+
display: flex;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
.#{$prefix}--header-dropdown-menu-content-text {
|
|
48
|
+
font-size: 0.875rem;
|
|
49
|
+
font-weight: 600;
|
|
50
|
+
line-height: 1.125rem;
|
|
51
|
+
letter-spacing: 0.01rem;
|
|
52
|
+
max-width: 14.5625rem;
|
|
53
|
+
overflow: hidden;
|
|
54
|
+
text-overflow: ellipsis;
|
|
55
|
+
white-space: nowrap;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
.#{$prefix}--header-dropdown-menu-content-icon {
|
|
59
|
+
margin-left: 1rem;
|
|
43
60
|
min-height: 1rem;
|
|
44
61
|
min-width: 1rem;
|
|
62
|
+
transition: transform 150ms ease-in-out;
|
|
63
|
+
transform: rotate(0deg);
|
|
45
64
|
}
|
|
46
65
|
|
|
47
66
|
&[aria-expanded="true"] {
|
|
48
67
|
background-color: var(--cds-layer-hover-01) !important;
|
|
68
|
+
|
|
69
|
+
.#{$prefix}--header-dropdown-menu-content-text {
|
|
70
|
+
width: 14.5625rem;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
.#{$prefix}--header-dropdown-menu-content-icon {
|
|
74
|
+
transform: rotate(180deg);
|
|
75
|
+
}
|
|
49
76
|
}
|
|
50
77
|
}
|
|
51
78
|
|