@boomerang-io/carbon-addons-boomerang-react 4.6.10-beta.3 → 4.6.10-beta.5

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.
@@ -1,8 +1,8 @@
1
1
  import React from 'react';
2
2
  import cx from 'classnames';
3
- import { SideNavLink, SideNav, SideNavItems, SideNavDivider, ComposedModal, ModalHeader, ModalBody, Dropdown, ModalFooter, Button, SkeletonPlaceholder, SideNavMenu } from '@carbon/react';
3
+ import { SideNavLink, SideNav, SideNavItems, SideNavDivider, ComposedModal, ModalHeader, ModalBody, Dropdown, ModalFooter, Button } from '@carbon/react';
4
4
  import TooltipHover from '../TooltipHover/TooltipHover.js';
5
- import { ChatBot, Home, AddAlt, UserMultiple, User, Locked, Unlocked, ChevronRight, GroupAccount } from '@carbon/react/icons';
5
+ import { ChatBot, Home, UserMultiple, AddAlt, Api, IntentRequestCreate, Folders, DocumentMultiple_02, Catalog, Settings, LicenseThirdParty } from '@carbon/react/icons';
6
6
  import { USER_PLATFORM_ROLE } from '../../constants/UserType.js';
7
7
  import { prefix } from '../../internal/settings.js';
8
8
 
@@ -12,8 +12,7 @@ IBM Confidential
12
12
  © Copyright IBM Corp. 2022, 2024
13
13
  */
14
14
  function AdvantageSideNav(props) {
15
- const { app, appLink, regionalTeam, enableChatButton = true, showChatButton = true, showSelectTeamPurpose = false, homeLink, assistantLink, defaultAssistantLink, joinCreateTrigger, isLoading, isOpen, teams = [], triggerEvent, accounts = [], baseEnvUrl, className, navLinks, personalTeams = [], user, showChatTooltip, templateMeteringEvent, tooltipMessage, isLaunchpad = false, userTeamsError = false, userTeamsLoading = false, history, children, ...rest } = props;
16
- const [activeSubmenu, setActiveSubmenu] = React.useState("");
15
+ const { app, appLink, regionalTeam, enableChatButton = true, showChatButton = true, showSelectTeamPurpose = false, homeLink, agentAssistantStudioLink, agentAssistantLibraryLink, assistantLink, defaultAssistantLink, documentCollectionsLink, settingsLink, toolsLink, joinCreateTrigger, isLoading, isOpen, teams = [], triggerEvent, accounts = [], baseEnvUrl, className, navLinks, navigation, personalTeams = [], user, showChatTooltip, templateMeteringEvent, tooltipMessage, isLaunchpad = false, history, children, ...rest } = props;
17
16
  const [activeMenu, setActiveMenu] = React.useState(false);
18
17
  const [teamList, setTeamList] = React.useState(null);
19
18
  const [regionalModalIsOpen, setRegionalModalIsOpen] = React.useState(false);
@@ -22,15 +21,37 @@ function AdvantageSideNav(props) {
22
21
  const windowLocation = window.location;
23
22
  const isPartnerUser = user?.type === USER_PLATFORM_ROLE.Partner;
24
23
  const joinButtontitle = showSelectTeamPurpose ? "Create Team" : "Create or Join Team";
25
- const standardTeamsList = [...personalTeams.map((pteams) => ({ ...pteams, isPersonal: true })), ...teams];
26
- const teamsMenuRef = React.useRef(null);
27
- const accountsMenuRef = React.useRef(null);
28
24
  const hamburguerMenu = document.getElementById("header-sidenav-menu-button");
29
- const noTeamsMessage = userTeamsError
30
- ? "Failed to get teams, please try again later."
31
- : "No teams or accounts available.";
32
- const teamsRef = React.useRef([]);
33
- const accountsRef = React.useRef([]);
25
+ // get current selected team
26
+ let teamSwitcherTeam = null;
27
+ if (personalTeams.length > 0) {
28
+ personalTeams.forEach((team) => {
29
+ if (team.id === user?.teamInstanceSwitcherDefault) {
30
+ teamSwitcherTeam = { ...team, isPersonal: true };
31
+ }
32
+ });
33
+ }
34
+ if (teams.length > 0) {
35
+ teams.forEach((team) => {
36
+ if (team.id === user?.teamInstanceSwitcherDefault) {
37
+ teamSwitcherTeam = { ...team, isStandard: true };
38
+ }
39
+ });
40
+ }
41
+ if (accounts.length > 0) {
42
+ accounts.forEach((account) => {
43
+ if (account.id === user?.teamInstanceSwitcherDefault) {
44
+ teamSwitcherTeam = { ...account, isAccount: true };
45
+ }
46
+ else if (account.projectTeams && account.projectTeams?.length > 0) {
47
+ account.projectTeams.forEach((projectTeam) => {
48
+ if (projectTeam.id === user?.teamInstanceSwitcherDefault) {
49
+ teamSwitcherTeam = { ...projectTeam, isProject: true };
50
+ }
51
+ });
52
+ }
53
+ });
54
+ }
34
55
  // Functions to track IBM Instrumentation on Segment
35
56
  const handleHomeClick = () => {
36
57
  triggerEvent &&
@@ -44,6 +65,46 @@ function AdvantageSideNav(props) {
44
65
  const assistantLink = `${appLink?.newChatRedirect()}?teamName=${team.name}&teamId=${team.id}`;
45
66
  window.open(assistantLink, "_self", "noopener,noreferrer");
46
67
  };
68
+ const handleToolsClick = () => {
69
+ triggerEvent &&
70
+ triggerEvent({
71
+ action: "Clicked on SideNav Tools link",
72
+ category: "Sidenav",
73
+ destinationPath: toolsLink,
74
+ });
75
+ };
76
+ const handleAgentAssistantStudioClick = () => {
77
+ triggerEvent &&
78
+ triggerEvent({
79
+ action: "Clicked on SideNav Agent & Assistant Studio link",
80
+ category: "Sidenav",
81
+ destinationPath: agentAssistantStudioLink,
82
+ });
83
+ };
84
+ const handleAgentAssistantLibraryClick = () => {
85
+ triggerEvent &&
86
+ triggerEvent({
87
+ action: "Clicked on SideNav Agent & Assistant Library link",
88
+ category: "Sidenav",
89
+ destinationPath: agentAssistantLibraryLink,
90
+ });
91
+ };
92
+ const handleDocumentCollectionsClick = () => {
93
+ triggerEvent &&
94
+ triggerEvent({
95
+ action: "Clicked on SideNav Document Collections link",
96
+ category: "Sidenav",
97
+ destinationPath: documentCollectionsLink,
98
+ });
99
+ };
100
+ const handleSettingsClick = () => {
101
+ triggerEvent &&
102
+ triggerEvent({
103
+ action: "Clicked on SideNav Settings link",
104
+ category: "Sidenav",
105
+ destinationPath: settingsLink,
106
+ });
107
+ };
47
108
  const handleAssistantClick = () => {
48
109
  if (regionalTeam?.length > 1) {
49
110
  setRegionalModalIsOpen(true);
@@ -78,60 +139,26 @@ function AdvantageSideNav(props) {
78
139
  teamType: type,
79
140
  });
80
141
  };
81
- const handleServiceClick = ({ service, team }) => {
82
- if (templateMeteringEvent) {
83
- templateMeteringEvent({ service, team });
84
- }
85
- triggerEvent &&
86
- triggerEvent({
87
- action: "Clicked on SideNav Service link",
88
- category: "Sidenav",
89
- destinationPath: service.url,
90
- });
91
- };
92
142
  const handleLaunchpadLink = (event) => {
93
143
  event.preventDefault();
94
- // remediation to close menu, submenu and accordion when select a team on Launchpad
95
- //@ts-ignore
96
- if (Boolean(teamsMenuRef.current?.ariaExpanded === "true")) {
97
- //@ts-ignore
98
- teamsMenuRef.current.click();
99
- }
100
- //@ts-ignore
101
- if (Boolean(accountsMenuRef.current?.ariaExpanded === "true")) {
102
- //@ts-ignore
103
- accountsMenuRef.current.click();
104
- }
105
144
  //@ts-ignore
106
145
  if (Boolean(hamburguerMenu) && hamburguerMenu.className.includes("active")) {
107
146
  //@ts-ignore
108
147
  Boolean(hamburguerMenu) && hamburguerMenu?.click();
109
148
  }
110
149
  setActiveMenu(false);
111
- setActiveSubmenu("");
112
150
  };
113
- // add or remove refs
114
- if (teamsRef.current.length !== standardTeamsList?.length) {
115
- //@ts-ignore
116
- teamsRef.current = Array(standardTeamsList?.length).fill().map((_, i) => teamsRef.current[i] || React.createRef());
117
- }
118
- if (accountsRef.current.length !== accounts?.length) {
119
- //@ts-ignore
120
- accountsRef.current = Array(accounts?.length).fill().map((_, i) => accountsRef.current[i] || React.createRef());
121
- }
122
151
  const assistantSideNavLink = (
123
- // assistantLink &&
124
- React.createElement(SideNavLink, { "data-testid": "sidenav-assistant-link", className: !enableChatButton ? `${prefix}--bmrg-advantage-sidenav__inactive-link` : "", disabled: Boolean(!enableChatButton), isActive: assistantLink ? windowLocation.href.includes(assistantLink) : '', renderIcon: ChatBot, href: enableChatButton && assistantLink, onClick: enableChatButton ? handleAssistantClick : (e) => e.preventDefault() }, `Start a ${defaultAssistantLink ? "" : "New "}Chat`));
152
+ // assistantLink &&
153
+ React.createElement(SideNavLink, { "data-testid": "sidenav-assistant-link", className: !enableChatButton ? `${prefix}--bmrg-advantage-sidenav__inactive-link` : "", disabled: Boolean(!enableChatButton), isActive: assistantLink ? windowLocation.href.includes(assistantLink) : "", renderIcon: ChatBot, href: enableChatButton && assistantLink, onClick: enableChatButton ? handleAssistantClick : (e) => e.preventDefault() }, "Chat"));
154
+ const catalogNavlink = navigation?.navigation?.find((navlink) => navlink.name === "Catalog");
155
+ const adminNavlink = navigation?.navigation?.find((navlink) => navlink.name === "Admin");
125
156
  return (React.createElement(SideNav, { "aria-label": "sidenav-container", className: cx(`${prefix}--bmrg-advantage-sidenav-container`, className, {
126
157
  "--closed": !isMenuOpen,
127
- }), "data-testid": "sidenav-container", isRail: true, expanded: isMenuOpen, onToggle: () => setActiveSubmenu(""), onMouseEnter: () => setActiveMenu(true), onMouseLeave: () => {
158
+ }), "data-testid": "sidenav-container", isRail: true, expanded: isMenuOpen, onMouseEnter: () => setActiveMenu(true), onMouseLeave: () => {
128
159
  setActiveMenu(false);
129
- setActiveSubmenu("");
130
160
  }, ...rest }, React.createElement(SideNavItems, null,
131
- isMenuOpen && navLinks?.length ? (React.createElement("div", null,
132
- navLinks.map((link) => (React.createElement(SideNavLink, { href: link.url, target: link.isExternal ? "_blank" : undefined, rel: link.isExternal ? "noopener noreferrer" : undefined }, link.name))),
133
- React.createElement(SideNavDivider, null))) : null,
134
- React.createElement("div", { onMouseEnter: () => setActiveSubmenu("") },
161
+ React.createElement("div", null,
135
162
  homeLink ? (React.createElement(SideNavLink, { "data-testid": "sidenav-home-link", isActive: `${baseEnvUrl}/${app}/`.includes(windowLocation.href), renderIcon: Home, href: homeLink, onClick: (e) => {
136
163
  if (isLaunchpad) {
137
164
  handleLaunchpadLink(e);
@@ -139,12 +166,55 @@ function AdvantageSideNav(props) {
139
166
  }
140
167
  handleHomeClick();
141
168
  } }, "Home")) : null,
169
+ teamSwitcherTeam ? (React.createElement(SideNavLink, { title: teamSwitcherTeam.isAccount ? "Account Page" : "Team Page", name: teamSwitcherTeam.name, "data-testid": "sidenav-team-link", id: teamSwitcherTeam.id, isActive: windowLocation.href.includes(teamSwitcherTeam.id), className: `${prefix}--bmrg-advantage-sidenav-team`, renderIcon: UserMultiple, href: `${baseEnvUrl}/${app}/teams/${teamSwitcherTeam.id}`, onClick: (e) => {
170
+ if (isLaunchpad) {
171
+ handleLaunchpadLink(e);
172
+ history.push(`/teams/${teamSwitcherTeam.id}`);
173
+ }
174
+ handleTeamClick({
175
+ team: teamSwitcherTeam,
176
+ type: teamSwitcherTeam.isPersonal
177
+ ? "personal"
178
+ : teamSwitcherTeam.isAccount
179
+ ? "account"
180
+ : teamSwitcherTeam.isproject
181
+ ? "project"
182
+ : "standard",
183
+ });
184
+ } },
185
+ React.createElement("p", { className: `${prefix}--bmrg-advantage-sidenav-teams__title` }, teamSwitcherTeam.isAccount ? "Account Page" : "Team Page"))) : !isPartnerUser && joinCreateTrigger ? (React.createElement(SideNavLink, { "data-testid": "sidenav-create-join-trigger", renderIcon: AddAlt, onClick: (e) => {
186
+ joinCreateTrigger(e);
187
+ handleCreateJoinClick();
188
+ } }, joinButtontitle)) : null,
189
+ React.createElement(SideNavDivider, null),
142
190
  !isPartnerUser &&
143
191
  // assistantLink &&
144
192
  showChatButton &&
145
193
  (showChatTooltip ? (React.createElement(TooltipHover, { className: `${prefix}--bmrg-side-nav__tooltip`, content: tooltipMessage, direction: "right" },
146
194
  React.createElement("span", null, assistantSideNavLink))) : (assistantSideNavLink)),
147
- regionalModalIsOpen && React.createElement(ComposedModal, { className: `${prefix}--teamSelectionModalContainer`, open: regionalModalIsOpen, onClose: () => setRegionalModalIsOpen(false), onKeyDown: (e) => e.stopPropagation(), "data-testid": "select-team-chat-modal" },
195
+ toolsLink ? (React.createElement(SideNavLink, { "data-testid": "sidenav-tools-link", renderIcon: Api, href: toolsLink, onClick: (e) => {
196
+ handleToolsClick();
197
+ } }, "Tools")) : null,
198
+ agentAssistantStudioLink ? (React.createElement(SideNavLink, { "data-testid": "sidenav-agent-assistant-studio-link", isActive: `${baseEnvUrl}/${app}/agent-assistant-studio`.includes(windowLocation.href), renderIcon: IntentRequestCreate, href: agentAssistantStudioLink, onClick: (e) => {
199
+ if (isLaunchpad) {
200
+ handleLaunchpadLink(e);
201
+ history.push(agentAssistantStudioLink);
202
+ }
203
+ handleAgentAssistantStudioClick();
204
+ } }, "Agent & Assistant Studio")) : null,
205
+ agentAssistantLibraryLink ? (React.createElement(SideNavLink, { "data-testid": "sidenav-agent-assistant-library-link", renderIcon: Folders, href: agentAssistantLibraryLink, onClick: (e) => {
206
+ handleAgentAssistantLibraryClick();
207
+ } }, "Agent & Assistant Library")) : null,
208
+ documentCollectionsLink ? (React.createElement(SideNavLink, { "data-testid": "sidenav-document-collections-link", renderIcon: DocumentMultiple_02, href: documentCollectionsLink, onClick: (e) => {
209
+ handleDocumentCollectionsClick();
210
+ } }, "Document Collections")) : null,
211
+ React.createElement(SideNavDivider, null),
212
+ catalogNavlink ? (React.createElement(SideNavLink, { href: catalogNavlink.url, renderIcon: Catalog }, catalogNavlink.name)) : null,
213
+ settingsLink ? (React.createElement(SideNavLink, { "data-testid": "sidenav-settings-link", renderIcon: Settings, href: settingsLink, onClick: (e) => {
214
+ handleSettingsClick();
215
+ } }, "Settings")) : null,
216
+ adminNavlink ? (React.createElement(SideNavLink, { href: adminNavlink.url, renderIcon: LicenseThirdParty }, adminNavlink.name)) : null,
217
+ regionalModalIsOpen && (React.createElement(ComposedModal, { className: `${prefix}--teamSelectionModalContainer`, open: regionalModalIsOpen, onClose: () => setRegionalModalIsOpen(false), onKeyDown: (e) => e.stopPropagation(), "data-testid": "select-team-chat-modal" },
148
218
  React.createElement(ModalHeader, { title: "Select Team to Start a New Chat", closeModal: () => setRegionalModalIsOpen(false) }),
149
219
  React.createElement(ModalBody, { className: `${prefix}--teamSelectModalBody` },
150
220
  React.createElement(Dropdown, { items: teamList, disabled: !teamList?.length, id: "select-team-chat-modal-dropdown", selectedItem: selectedTeam, size: "md", "data-testid": "select-team-chat-modal-dropdown", itemToString: (item) => item?.name, label: "Choose a team", onChange: ({ selectedItem }) => setSelectedTeam(selectedItem) })),
@@ -156,97 +226,10 @@ function AdvantageSideNav(props) {
156
226
  setRegionalModalIsOpen(false);
157
227
  // closeModal();
158
228
  }
159
- } }, "Continue"))),
160
- !isPartnerUser && joinCreateTrigger ? (React.createElement(SideNavLink, { "data-testid": "sidenav-create-join-trigger", renderIcon: AddAlt, onClick: (e) => {
161
- joinCreateTrigger(e);
162
- handleCreateJoinClick();
163
- } }, joinButtontitle)) : null),
229
+ } }, "Continue"))))),
164
230
  children ? (React.createElement(React.Fragment, null,
165
231
  React.createElement(SideNavDivider, null),
166
- children)) : null,
167
- userTeamsLoading && isMenuOpen ? (React.createElement(React.Fragment, null,
168
- React.createElement(SideNavDivider, null),
169
- React.createElement("div", { className: `${prefix}--bmrg-advantage-sidenav-loading-container` },
170
- React.createElement(SkeletonPlaceholder, { className: `${prefix}--bmrg-advantage-sidenav-loading` }),
171
- React.createElement(SkeletonPlaceholder, { className: `${prefix}--bmrg-advantage-sidenav-loading` }),
172
- React.createElement(SkeletonPlaceholder, { className: `${prefix}--bmrg-advantage-sidenav-loading` })))) : null,
173
- ((!Boolean(standardTeamsList?.length) && !Boolean(accounts?.length) && !userTeamsLoading) ||
174
- userTeamsError) &&
175
- isMenuOpen ? (React.createElement(React.Fragment, null,
176
- React.createElement("p", { className: `${prefix}--bmrg-advantage-sidenav-no-teams__text` }, noTeamsMessage))) : null,
177
- Boolean(standardTeamsList?.length) ? (React.createElement(React.Fragment, null,
178
- React.createElement(SideNavDivider, null),
179
- React.createElement(SideNavMenu, { className: cx(`${prefix}--bmrg-advantage-sidenav-menu`, {
180
- "--active-closed": !isMenuOpen && standardTeamsList.some((t) => windowLocation.href.includes(t.id)),
181
- }), renderIcon: UserMultiple, title: "Teams", "data-testid": "sidenav-teams", id: "sidenav-teams", ref: teamsMenuRef, isActive: standardTeamsList.some((t) => windowLocation.href.includes(t.id)), isSideNavExpanded: isMenuOpen }, isMenuOpen
182
- ? standardTeamsList?.map((team, i) => {
183
- const topPosition = document?.getElementById(team.id)?.getBoundingClientRect()?.top ?? 0;
184
- const teamDisplayName = Boolean(team.displayName) ? team.displayName : team.name;
185
- return (React.createElement(React.Fragment, null,
186
- React.createElement("li", { className: `${prefix}--bmrg-advantage-sidenav-team-item` },
187
- React.createElement(SideNavLink, { title: teamDisplayName, name: team.name, "data-testid": "sidenav-team-link", id: team.id, isActive: windowLocation.href.includes(team.id), ref: teamsRef.current[i], className: `${prefix}--bmrg-advantage-sidenav-team`, renderIcon: team?.isPersonal ? User : team.privateTeam ? Locked : Unlocked, href: `${baseEnvUrl}/${app}/teams/${team.id}`, onMouseEnter: () => setActiveSubmenu(team.id), onFocus: () => setActiveSubmenu(team.id), onClick: (e) => {
188
- if (isLaunchpad) {
189
- handleLaunchpadLink(e);
190
- history.push(`/teams/${team.id}`);
191
- }
192
- handleTeamClick({ team, type: team.isPersonal ? "personal" : "standard" });
193
- } },
194
- React.createElement("p", { className: `${prefix}--bmrg-advantage-sidenav-teams__title` }, teamDisplayName),
195
- Boolean(team?.services?.length) ? React.createElement(ChevronRight, null) : null),
196
- Boolean(team?.services?.length) && team.id === activeSubmenu ? (React.createElement("ul", { className: cx(`${prefix}--bmrg-advantage-sidenav-submenu`, {
197
- "--open": team.id === activeSubmenu,
198
- }), style: { top: `${window.scrollY + topPosition}px` } },
199
- React.createElement("li", { className: `${prefix}--bmrg-advantage-sidenav-submenu-wrapper` },
200
- React.createElement("ul", { className: `${prefix}--bmrg-advantage-sidenav-services-submenu` },
201
- React.createElement(SideNavLink, { title: "Team Page", className: `${prefix}--bmrg-advantage-sidenav-submenu-link`, "data-testid": "sidenav-team-submenu-link", href: `${baseEnvUrl}/${app}/teams/${team.id}`, onClick: (e) => {
202
- if (isLaunchpad) {
203
- handleLaunchpadLink(e);
204
- history.push(`/teams/${team.id}`);
205
- }
206
- handleTeamClick({ team, type: team.isPersonal ? "personal" : "standard" });
207
- } }, "Team Page"),
208
- team.services?.map((service) => (React.createElement(SideNavLink, { title: service.name, className: `${prefix}--bmrg-advantage-sidenav-submenu-link`, "data-testid": "sidenav-service-submenu-link", href: service.url, onClick: () => handleServiceClick({ service, team }) }, service.name))) ?? null)))) : null)));
209
- })
210
- : null))) : null,
211
- Boolean(accounts?.length) ? (React.createElement(React.Fragment, null,
212
- React.createElement(SideNavDivider, null),
213
- React.createElement(SideNavMenu, { className: cx(`${prefix}--bmrg-advantage-sidenav-menu`, {
214
- "--active-closed": !isMenuOpen &&
215
- accounts.some((t) => {
216
- const pIds = t?.projectTeams?.map((project) => project.id) ?? [];
217
- return windowLocation.href.includes(t.id) || pIds.some((id) => windowLocation.href.includes(id));
218
- }),
219
- }), renderIcon: GroupAccount, title: "Accounts", "data-testid": "sidenav-accounts", id: "sidenav-accounts", ref: accountsMenuRef, "aria-expanded": isMenuOpen, isSideNavExpanded: isMenuOpen }, isMenuOpen
220
- ? accounts?.map((team, i) => {
221
- const topPosition = document?.getElementById(team.id)?.getBoundingClientRect()?.top ?? 0;
222
- const teamDisplayName = Boolean(team.displayName) ? team.displayName : team.name;
223
- const projectIds = team?.projectTeams?.map((project) => project.id) ?? [];
224
- const isAccountActive = windowLocation.href.includes(team.id) ||
225
- projectIds.some((id) => windowLocation.href.includes(id));
226
- return (React.createElement(React.Fragment, null,
227
- React.createElement("li", { className: `${prefix}--bmrg-advantage-sidenav-team-item` },
228
- React.createElement(SideNavLink, { title: teamDisplayName, id: team.id, isActive: isAccountActive, ref: accountsRef.current[i], className: `${prefix}--bmrg-advantage-sidenav-account`, href: `${baseEnvUrl}/${app}/teams/${team.id}`, onMouseEnter: () => setActiveSubmenu(team.id), onFocus: () => setActiveSubmenu(team.id), onClick: (e) => {
229
- if (isLaunchpad) {
230
- handleLaunchpadLink(e);
231
- history.push(`/teams/${team.id}`);
232
- }
233
- handleTeamClick({ team, type: "account" });
234
- } },
235
- React.createElement("p", { className: `${prefix}--bmrg-advantage-sidenav-teams__title` }, teamDisplayName),
236
- Boolean(team?.projectTeams?.length) ? React.createElement(ChevronRight, null) : null),
237
- Boolean(team?.projectTeams?.length) && team.id === activeSubmenu ? (React.createElement("ul", { className: cx(`${prefix}--bmrg-advantage-sidenav-submenu`, {
238
- "--open": team.id === activeSubmenu,
239
- }), style: { top: `${window.scrollY + topPosition}px` } },
240
- React.createElement("li", { className: `${prefix}--bmrg-advantage-sidenav-submenu-wrapper` },
241
- React.createElement("ul", { className: `${prefix}--bmrg-advantage-sidenav-services-submenu` }, team.projectTeams?.map((accTeam) => (React.createElement(SideNavLink, { title: accTeam.name, className: `${prefix}--bmrg-advantage-sidenav-submenu-link`, "data-testid": "sidenav-account-submenu-link", href: `${baseEnvUrl}/${app}/teams/${accTeam.id}`, onClick: (e) => {
242
- if (isLaunchpad) {
243
- handleLaunchpadLink(e);
244
- history.push(`/teams/${accTeam.id}`);
245
- }
246
- handleTeamClick({ team: accTeam, type: "project" });
247
- } }, accTeam.name))) ?? null)))) : null)));
248
- })
249
- : null))) : null)));
232
+ children)) : null)));
250
233
  }
251
234
 
252
235
  export { AdvantageSideNav, AdvantageSideNav as default };
@@ -54,13 +54,13 @@ const MenuAriaLabelRecord = {
54
54
  const headerButtonClassNames = "cds--btn--icon-only cds--header__action cds--btn cds--btn--primary cds--btn--icon-only cds--btn cds--btn--primary";
55
55
  const instanceCheckMarkContainerClass = "instance-checkmark-style-container";
56
56
  function Header(props) {
57
- const { analyticsHelpers, productName, baseEnvUrl, baseServicesUrl, carbonTheme = "g10", className, createJoinTeamTrigger, history, isLaunchpad = false, navLinks, platform, prefixName = "", rightPanel, skipToContentProps, templateMeteringEvent, trackEvent, triggerEvent, user, userTeams, } = props;
57
+ const { analyticsHelpers, productName, baseEnvUrl, baseServicesUrl, carbonTheme = "g10", className, createJoinTeamTrigger, history, isLaunchpad = false, isLoadingTeamSwitcher, isSuccessTeamSwitcher, setIsSuccessTeamSwitcher, navLinks, platform, prefixName = "", rightPanel, skipToContentProps, templateMeteringEvent, trackEvent, triggerEvent, user, userTeams, } = props;
58
58
  const hasUserTeams = Boolean(userTeams);
59
59
  const userTeamsUrl = serviceUrl.getUserTeamsServices({ baseServicesUrl });
60
60
  const teamsQuery = useQuery({
61
61
  queryKey: userTeamsUrl,
62
62
  queryFn: resolver.query(userTeamsUrl, null),
63
- enabled: !hasUserTeams,
63
+ enabled: !hasUserTeams && Boolean(baseServicesUrl),
64
64
  });
65
65
  return (React.createElement(React.Fragment, null,
66
66
  React.createElement(Theme, { theme: carbonTheme },
@@ -72,7 +72,7 @@ function Header(props) {
72
72
  ? navLinks.map((link) => (React.createElement(HeaderMenuItem, { "aria-label": `Link for ${link.name}`, "data-testid": "header-menu-link", href: link.url, isCurrentPage: window?.location?.href && link.url ? window.location.href.startsWith(link.url) : false, key: link.name, target: link.isExternal ? "_blank" : undefined, rel: link.isExternal ? "noopener noreferrer" : undefined }, link.name)))
73
73
  : null),
74
74
  React.createElement(HeaderGlobalBar, null,
75
- React.createElement(HeaderTeamSwitcher, { analyticsHelpers: analyticsHelpers, baseServicesUrl: baseServicesUrl, createJoinTeamTrigger: createJoinTeamTrigger, history: history, isLaunchpad: isLaunchpad, menuAriaLabelRecord: MenuAriaLabelRecord.TeamSwitcher, menuButtonId: MenuButtonId.TeamSwitcher, menuListId: MenuListId.TeamSwitcher, navigationPlatform: platform, teamsQuery: teamsQuery, trackEvent: trackEvent, user: user, userTeams: userTeams }),
75
+ React.createElement(HeaderTeamSwitcher, { analyticsHelpers: analyticsHelpers, baseServicesUrl: baseServicesUrl, createJoinTeamTrigger: createJoinTeamTrigger, history: history, isLaunchpad: isLaunchpad, isLoadingTeamSwitcher: isLoadingTeamSwitcher, isSuccessTeamSwitcher: isSuccessTeamSwitcher, setIsSuccessTeamSwitcher: setIsSuccessTeamSwitcher, menuAriaLabelRecord: MenuAriaLabelRecord.TeamSwitcher, menuButtonId: MenuButtonId.TeamSwitcher, menuListId: MenuListId.TeamSwitcher, navigationPlatform: platform, teamsQuery: teamsQuery, trackEvent: trackEvent, user: user, userTeams: userTeams }),
76
76
  props?.instanceSwitcherEnabled && (React.createElement(InstanceSwitcherMenu, { enabled: Boolean(props.instanceSwitcherEnabled), menuItems: platform?.instances })),
77
77
  React.createElement(RequestsMenu, { baseEnvUrl: baseEnvUrl, enabled: Boolean(props.requestSummary), summary: props.requestSummary }),
78
78
  React.createElement(NotificationsMenu, { baseEnvUrl: baseEnvUrl, baseServicesUrl: baseServicesUrl, enabled: Boolean(props.enableNotifications), countEnabled: Boolean(props.enableNotificationsCount) }),