@boomerang-io/carbon-addons-boomerang-react 4.6.21-beta.34 → 4.6.21-beta.36

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.
@@ -147,6 +147,15 @@ function AdvantageSideNav(props) {
147
147
  };
148
148
  const chatSideNavLink = (React__default.default.createElement(react.SideNavLink, { "data-testid": "sidenav-chat-link", className: !enableChatButton ? `${settings.prefix}--bmrg-advantage-sidenav__inactive-link` : "", disabled: Boolean(!enableChatButton), renderIcon: icons.ChatBot, href: enableChatButton && chatLink, onClick: enableChatButton ? handleChatClick : (e) => e.preventDefault() }, "Chat"));
149
149
  const showSecondDivider = showChatButton || toolsLink || agentAssistantStudioLink || agentAssistantLibraryLink || documentCollectionsLink;
150
+ const navigateInternal = (url) => {
151
+ const target = new URL(url, window.location.origin);
152
+ if (target.origin === window.location.origin) {
153
+ history.push(target.pathname + target.search + target.hash);
154
+ }
155
+ else {
156
+ window.location.href = url;
157
+ }
158
+ };
150
159
  return (React__default.default.createElement(react.SideNav, { "aria-label": "sidenav-container", className: cx__default.default(`${settings.prefix}--bmrg-advantage-sidenav-container`, className, {
151
160
  "--closed": !isMenuOpen,
152
161
  }), "data-testid": "sidenav-container", isRail: true, expanded: isMenuOpen, onMouseEnter: () => setActiveMenu(true), onMouseLeave: () => {
@@ -208,13 +217,19 @@ function AdvantageSideNav(props) {
208
217
  //href={documentCollectionsLink}
209
218
  className: `${settings.prefix}--bmrg-advantage-sidenav__inactive-link` , disabled: Boolean(!AssistantStudioLink) }, "Document Collections")) : null,
210
219
  showSecondDivider ? React__default.default.createElement(react.SideNavDivider, null) : null,
211
- catalogNavlink ? (React__default.default.createElement(react.SideNavLink, { "data-testid": "sidenav-catalog-link", isActive: windowLocation.href.includes(`${baseEnvUrl}/catalog`), href: catalogNavlink, renderIcon: icons.Catalog }, "Catalog")) : null,
220
+ catalogNavlink ? (React__default.default.createElement(react.SideNavLink, { "data-testid": "sidenav-catalog-link", isActive: windowLocation.href.includes(`${baseEnvUrl}/catalog`), renderIcon: icons.Catalog, onClick: (e) => {
221
+ e.preventDefault();
222
+ navigateInternal(catalogNavlink);
223
+ } }, "Catalog")) : null,
212
224
  settingsLink ? (React__default.default.createElement(react.SideNavLink, { "data-testid": "sidenav-settings-link", renderIcon: icons.Settings,
213
225
  // href={settingsLink}
214
226
  className: `${settings.prefix}--bmrg-advantage-sidenav__inactive-link` , disabled: Boolean(!AssistantStudioLink), onClick: (e) => {
215
227
  handleSettingsClick();
216
228
  } }, "Settings")) : null,
217
- adminNavlink ? (React__default.default.createElement(react.SideNavLink, { "data-testid": "sidenav-admin-link", href: adminNavlink, renderIcon: icons.LicenseThirdParty }, "Admin")) : null),
229
+ adminNavlink ? (React__default.default.createElement(react.SideNavLink, { "data-testid": "sidenav-admin-link", renderIcon: icons.LicenseThirdParty, onClick: (e) => {
230
+ e.preventDefault();
231
+ navigateInternal(adminNavlink);
232
+ } }, "Admin")) : null),
218
233
  children ? (React__default.default.createElement(React__default.default.Fragment, null,
219
234
  React__default.default.createElement(react.SideNavDivider, null),
220
235
  children)) : null)));
@@ -53,7 +53,7 @@ function HeaderTeamSwitcher({ analyticsHelpers, baseServicesUrl, createJoinTeamT
53
53
  const showSelectTeamPurpose = navigationPlatform?.requireTeamPurpose;
54
54
  const createTeamButtonText = showSelectTeamPurpose ? "Create Team" : "Create or Join Team";
55
55
  const userTeamInstanceSwitcherDefault = user?.teamInstanceSwitcherDefault;
56
- console.log("userTeamInstanceSwitcherDefault", userTeamInstanceSwitcherDefault);
56
+ const hasUpdatedDefaultTeamRef = React__default.default.useRef(false);
57
57
  const teamLink = ({ teamId }) => {
58
58
  return `${navigationPlatform.baseEnvUrl}/launchpad/teams/${teamId}`;
59
59
  };
@@ -91,41 +91,44 @@ function HeaderTeamSwitcher({ analyticsHelpers, baseServicesUrl, createJoinTeamT
91
91
  const userHasStandardTeams = standardTeams.length > 0;
92
92
  const userHasTeams = userHasPersonalTeam || userHasAccountTeams || userHasStandardTeams;
93
93
  const handleSelectTeam = async ({ team }) => {
94
- console.log("handle select team", team);
95
94
  setSelectedTeam(team);
96
- if (!userTeamInstanceSwitcherDefault) {
95
+ if (!userTeamInstanceSwitcherDefault &&
96
+ !hasUpdatedDefaultTeamRef.current) {
97
+ hasUpdatedDefaultTeamRef.current = true;
97
98
  const body = {
98
99
  teamInstanceSwitcherDefault: team.id,
99
100
  };
100
- console.log("profile patch called", team);
101
+ console.log("handleSelectTeam in useEffect - updating default team to:", team.id);
101
102
  await mutateUserProfile({ baseServicesUrl, body });
102
103
  }
103
104
  };
104
105
  const handleNoTeamsToSelect = async () => {
106
+ if (hasUpdatedDefaultTeamRef.current)
107
+ return;
108
+ hasUpdatedDefaultTeamRef.current = true;
105
109
  const body = {
106
110
  teamInstanceSwitcherDefault: null,
107
111
  };
108
- console.log("patch called inside handleNoTeamsToSelect");
109
112
  await mutateUserProfile({ baseServicesUrl, body });
110
113
  };
111
114
  if (userHasTeams) {
112
115
  if (!userTeamInstanceSwitcherDefault) {
113
116
  if (userHasPersonalTeam) {
114
- console.log("userHasPersonalTeam", personalTeam[0]);
115
117
  handleSelectTeam({ team: personalTeam[0] });
118
+ console.log("useffect - personal team selected");
116
119
  }
117
120
  else if (userHasAccountTeams) {
118
121
  const sortedAccounts = sortBy__default.default(accountTeams, [
119
122
  (account) => (account.displayName ? account.displayName : account.name),
120
123
  ]);
121
- console.log("userHasAccountTeams", sortedAccounts[0]);
124
+ console.log("useffect - account team selected");
122
125
  handleSelectTeam({ team: sortedAccounts[0] });
123
126
  }
124
127
  else if (userHasStandardTeams) {
125
128
  const sortedStandardTeams = sortBy__default.default(standardTeams, [
126
129
  (standardTeam) => (standardTeam.displayName ? standardTeam.displayName : standardTeam.name),
127
130
  ]);
128
- console.log("userHasStandardTeams", sortedStandardTeams[0]);
131
+ console.log("useffect - standard team selected");
129
132
  handleSelectTeam({ team: sortedStandardTeams[0] });
130
133
  }
131
134
  }
@@ -140,7 +143,7 @@ function HeaderTeamSwitcher({ analyticsHelpers, baseServicesUrl, createJoinTeamT
140
143
  }
141
144
  const allTeams = personalTeam.concat(standardTeams, accountTeams, allProjectTeams);
142
145
  const newSelectedTeam = allTeams.find((team) => team.id === userTeamInstanceSwitcherDefault);
143
- console.log("newSelectedTeam", newSelectedTeam);
146
+ console.log("useffect - newSelectedTeam in usEffect:", newSelectedTeam);
144
147
  handleSelectTeam({ team: newSelectedTeam });
145
148
  }
146
149
  // if teams data loaded but there are no teams
@@ -138,6 +138,15 @@ function AdvantageSideNav(props) {
138
138
  };
139
139
  const chatSideNavLink = (React.createElement(SideNavLink, { "data-testid": "sidenav-chat-link", className: !enableChatButton ? `${prefix}--bmrg-advantage-sidenav__inactive-link` : "", disabled: Boolean(!enableChatButton), renderIcon: ChatBot, href: enableChatButton && chatLink, onClick: enableChatButton ? handleChatClick : (e) => e.preventDefault() }, "Chat"));
140
140
  const showSecondDivider = showChatButton || toolsLink || agentAssistantStudioLink || agentAssistantLibraryLink || documentCollectionsLink;
141
+ const navigateInternal = (url) => {
142
+ const target = new URL(url, window.location.origin);
143
+ if (target.origin === window.location.origin) {
144
+ history.push(target.pathname + target.search + target.hash);
145
+ }
146
+ else {
147
+ window.location.href = url;
148
+ }
149
+ };
141
150
  return (React.createElement(SideNav, { "aria-label": "sidenav-container", className: cx(`${prefix}--bmrg-advantage-sidenav-container`, className, {
142
151
  "--closed": !isMenuOpen,
143
152
  }), "data-testid": "sidenav-container", isRail: true, expanded: isMenuOpen, onMouseEnter: () => setActiveMenu(true), onMouseLeave: () => {
@@ -199,13 +208,19 @@ function AdvantageSideNav(props) {
199
208
  //href={documentCollectionsLink}
200
209
  className: `${prefix}--bmrg-advantage-sidenav__inactive-link` , disabled: Boolean(!AssistantStudioLink) }, "Document Collections")) : null,
201
210
  showSecondDivider ? React.createElement(SideNavDivider, null) : null,
202
- catalogNavlink ? (React.createElement(SideNavLink, { "data-testid": "sidenav-catalog-link", isActive: windowLocation.href.includes(`${baseEnvUrl}/catalog`), href: catalogNavlink, renderIcon: Catalog }, "Catalog")) : null,
211
+ catalogNavlink ? (React.createElement(SideNavLink, { "data-testid": "sidenav-catalog-link", isActive: windowLocation.href.includes(`${baseEnvUrl}/catalog`), renderIcon: Catalog, onClick: (e) => {
212
+ e.preventDefault();
213
+ navigateInternal(catalogNavlink);
214
+ } }, "Catalog")) : null,
203
215
  settingsLink ? (React.createElement(SideNavLink, { "data-testid": "sidenav-settings-link", renderIcon: Settings,
204
216
  // href={settingsLink}
205
217
  className: `${prefix}--bmrg-advantage-sidenav__inactive-link` , disabled: Boolean(!AssistantStudioLink), onClick: (e) => {
206
218
  handleSettingsClick();
207
219
  } }, "Settings")) : null,
208
- adminNavlink ? (React.createElement(SideNavLink, { "data-testid": "sidenav-admin-link", href: adminNavlink, renderIcon: LicenseThirdParty }, "Admin")) : null),
220
+ adminNavlink ? (React.createElement(SideNavLink, { "data-testid": "sidenav-admin-link", renderIcon: LicenseThirdParty, onClick: (e) => {
221
+ e.preventDefault();
222
+ navigateInternal(adminNavlink);
223
+ } }, "Admin")) : null),
209
224
  children ? (React.createElement(React.Fragment, null,
210
225
  React.createElement(SideNavDivider, null),
211
226
  children)) : null)));
@@ -44,7 +44,7 @@ function HeaderTeamSwitcher({ analyticsHelpers, baseServicesUrl, createJoinTeamT
44
44
  const showSelectTeamPurpose = navigationPlatform?.requireTeamPurpose;
45
45
  const createTeamButtonText = showSelectTeamPurpose ? "Create Team" : "Create or Join Team";
46
46
  const userTeamInstanceSwitcherDefault = user?.teamInstanceSwitcherDefault;
47
- console.log("userTeamInstanceSwitcherDefault", userTeamInstanceSwitcherDefault);
47
+ const hasUpdatedDefaultTeamRef = React.useRef(false);
48
48
  const teamLink = ({ teamId }) => {
49
49
  return `${navigationPlatform.baseEnvUrl}/launchpad/teams/${teamId}`;
50
50
  };
@@ -82,41 +82,44 @@ function HeaderTeamSwitcher({ analyticsHelpers, baseServicesUrl, createJoinTeamT
82
82
  const userHasStandardTeams = standardTeams.length > 0;
83
83
  const userHasTeams = userHasPersonalTeam || userHasAccountTeams || userHasStandardTeams;
84
84
  const handleSelectTeam = async ({ team }) => {
85
- console.log("handle select team", team);
86
85
  setSelectedTeam(team);
87
- if (!userTeamInstanceSwitcherDefault) {
86
+ if (!userTeamInstanceSwitcherDefault &&
87
+ !hasUpdatedDefaultTeamRef.current) {
88
+ hasUpdatedDefaultTeamRef.current = true;
88
89
  const body = {
89
90
  teamInstanceSwitcherDefault: team.id,
90
91
  };
91
- console.log("profile patch called", team);
92
+ console.log("handleSelectTeam in useEffect - updating default team to:", team.id);
92
93
  await mutateUserProfile({ baseServicesUrl, body });
93
94
  }
94
95
  };
95
96
  const handleNoTeamsToSelect = async () => {
97
+ if (hasUpdatedDefaultTeamRef.current)
98
+ return;
99
+ hasUpdatedDefaultTeamRef.current = true;
96
100
  const body = {
97
101
  teamInstanceSwitcherDefault: null,
98
102
  };
99
- console.log("patch called inside handleNoTeamsToSelect");
100
103
  await mutateUserProfile({ baseServicesUrl, body });
101
104
  };
102
105
  if (userHasTeams) {
103
106
  if (!userTeamInstanceSwitcherDefault) {
104
107
  if (userHasPersonalTeam) {
105
- console.log("userHasPersonalTeam", personalTeam[0]);
106
108
  handleSelectTeam({ team: personalTeam[0] });
109
+ console.log("useffect - personal team selected");
107
110
  }
108
111
  else if (userHasAccountTeams) {
109
112
  const sortedAccounts = sortBy(accountTeams, [
110
113
  (account) => (account.displayName ? account.displayName : account.name),
111
114
  ]);
112
- console.log("userHasAccountTeams", sortedAccounts[0]);
115
+ console.log("useffect - account team selected");
113
116
  handleSelectTeam({ team: sortedAccounts[0] });
114
117
  }
115
118
  else if (userHasStandardTeams) {
116
119
  const sortedStandardTeams = sortBy(standardTeams, [
117
120
  (standardTeam) => (standardTeam.displayName ? standardTeam.displayName : standardTeam.name),
118
121
  ]);
119
- console.log("userHasStandardTeams", sortedStandardTeams[0]);
122
+ console.log("useffect - standard team selected");
120
123
  handleSelectTeam({ team: sortedStandardTeams[0] });
121
124
  }
122
125
  }
@@ -131,7 +134,7 @@ function HeaderTeamSwitcher({ analyticsHelpers, baseServicesUrl, createJoinTeamT
131
134
  }
132
135
  const allTeams = personalTeam.concat(standardTeams, accountTeams, allProjectTeams);
133
136
  const newSelectedTeam = allTeams.find((team) => team.id === userTeamInstanceSwitcherDefault);
134
- console.log("newSelectedTeam", newSelectedTeam);
137
+ console.log("useffect - newSelectedTeam in usEffect:", newSelectedTeam);
135
138
  handleSelectTeam({ team: newSelectedTeam });
136
139
  }
137
140
  // if teams data loaded but there are no teams
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@boomerang-io/carbon-addons-boomerang-react",
3
3
  "description": "Carbon Addons for Boomerang apps",
4
- "version": "4.6.21-beta.34",
4
+ "version": "4.6.21-beta.36",
5
5
  "author": {
6
6
  "name": "Tim Bula",
7
7
  "email": "timrbula@gmail.com"