@boomerang-io/carbon-addons-boomerang-react 4.6.11-beta.22 → 4.6.11-beta.23

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.
@@ -23,9 +23,9 @@ IBM Confidential
23
23
  function AdvantageSideNav(props) {
24
24
  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;
25
25
  const [activeMenu, setActiveMenu] = React__default.default.useState(false);
26
- React__default.default.useState(null);
27
- // const [regionalModalIsOpen, setRegionalModalIsOpen] = React.useState(false);
28
- React__default.default.useState(null);
26
+ const [teamList, setTeamList] = React__default.default.useState(null);
27
+ const [regionalModalIsOpen, setRegionalModalIsOpen] = React__default.default.useState(false);
28
+ const [selectedTeam, setSelectedTeam] = React__default.default.useState(null);
29
29
  const isMenuOpen = isOpen || activeMenu;
30
30
  const windowLocation = window.location;
31
31
  const isPartnerUser = user?.type === UserType.USER_PLATFORM_ROLE.Partner;
@@ -70,6 +70,10 @@ function AdvantageSideNav(props) {
70
70
  destinationPath: homeLink,
71
71
  });
72
72
  };
73
+ const handleRegionalNewStartNewChat = (team) => {
74
+ const assistantLink = `${appLink?.newChatRedirect()}?teamName=${team.name}&teamId=${team.id}`;
75
+ window.open(assistantLink, "_self", "noopener,noreferrer");
76
+ };
73
77
  const handleToolsClick = () => {
74
78
  triggerEvent &&
75
79
  triggerEvent({
@@ -111,14 +115,19 @@ function AdvantageSideNav(props) {
111
115
  });
112
116
  };
113
117
  const handleAssistantClick = () => {
114
- let redirectLink = `${appLink.newChatRedirect()}?teamName=${teamSwitcherTeam.name}&teamId=${teamSwitcherTeam.id}`;
118
+ if (regionalTeam?.length > 1) {
119
+ setRegionalModalIsOpen(true);
120
+ setTeamList(regionalTeam?.map((team) => ({
121
+ id: team.id,
122
+ name: team.name,
123
+ })));
124
+ }
115
125
  triggerEvent &&
116
126
  triggerEvent({
117
127
  action: "Clicked on SideNav Assistant link",
118
128
  category: "Sidenav",
119
- destinationPath: redirectLink,
129
+ destinationPath: assistantLink,
120
130
  });
121
- window.open(redirectLink, "_self", "noopener,noreferrer");
122
131
  };
123
132
  const handleCreateJoinClick = () => {
124
133
  triggerEvent &&
@@ -150,11 +159,7 @@ function AdvantageSideNav(props) {
150
159
  };
151
160
  const assistantSideNavLink = (
152
161
  // assistantLink &&
153
- React__default.default.createElement(react.SideNavLink, { "data-testid": "sidenav-assistant-link", className: !enableChatButton ? `${settings.prefix}--bmrg-advantage-sidenav__inactive-link` : "", disabled: Boolean(!enableChatButton),
154
- // isActive={assistantLink }
155
- renderIcon: icons.ChatBot,
156
- // href={enableChatButton}
157
- onClick: enableChatButton ? handleAssistantClick : (e) => e.preventDefault() }, "Chat"));
162
+ React__default.default.createElement(react.SideNavLink, { "data-testid": "sidenav-assistant-link", className: !enableChatButton ? `${settings.prefix}--bmrg-advantage-sidenav__inactive-link` : "", disabled: Boolean(!enableChatButton), isActive: assistantLink ? windowLocation.href.includes(assistantLink) : "", renderIcon: icons.ChatBot, href: enableChatButton && assistantLink, onClick: enableChatButton ? handleAssistantClick : (e) => e.preventDefault() }, "Chat"));
158
163
  const catalogNavlink = navigation?.platform?.catalog?.url;
159
164
  const adminNavlink = navigation?.platform?.admin?.url;
160
165
  const showSecondDivider = (!isPartnerUser && showChatButton) ||
@@ -222,7 +227,20 @@ function AdvantageSideNav(props) {
222
227
  settingsLink ? (React__default.default.createElement(react.SideNavLink, { "data-testid": "sidenav-settings-link", renderIcon: icons.Settings, href: settingsLink, onClick: (e) => {
223
228
  handleSettingsClick();
224
229
  } }, "Settings")) : null,
225
- adminNavlink ? (React__default.default.createElement(react.SideNavLink, { href: adminNavlink, renderIcon: icons.LicenseThirdParty }, "Admin")) : null),
230
+ adminNavlink ? (React__default.default.createElement(react.SideNavLink, { href: adminNavlink, renderIcon: icons.LicenseThirdParty }, "Admin")) : null,
231
+ regionalModalIsOpen && (React__default.default.createElement(react.ComposedModal, { className: `${settings.prefix}--teamSelectionModalContainer`, open: regionalModalIsOpen, onClose: () => setRegionalModalIsOpen(false), onKeyDown: (e) => e.stopPropagation(), "data-testid": "select-team-chat-modal" },
232
+ React__default.default.createElement(react.ModalHeader, { title: "Select Team to Start a New Chat", closeModal: () => setRegionalModalIsOpen(false) }),
233
+ React__default.default.createElement(react.ModalBody, { className: `${settings.prefix}--teamSelectModalBody` },
234
+ React__default.default.createElement(react.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) })),
235
+ React__default.default.createElement(react.ModalFooter, null,
236
+ React__default.default.createElement(react.Button, { kind: "secondary", "data-testid": "select-team-chat-modal-cancel-button", onClick: () => setRegionalModalIsOpen(false) }, "Cancel"),
237
+ React__default.default.createElement(react.Button, { "data-modal-primary-focus": true, kind: "primary", disabled: !selectedTeam, "data-testid": "select-team-chat-modal-continue-button", onClick: () => {
238
+ if (selectedTeam) {
239
+ handleRegionalNewStartNewChat(selectedTeam);
240
+ setRegionalModalIsOpen(false);
241
+ // closeModal();
242
+ }
243
+ } }, "Continue"))))),
226
244
  children ? (React__default.default.createElement(React__default.default.Fragment, null,
227
245
  React__default.default.createElement(react.SideNavDivider, null),
228
246
  children)) : null)));
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  import cx from 'classnames';
3
- import { SideNavLink, SideNav, SideNavItems, SideNavDivider } 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
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';
@@ -14,9 +14,9 @@ IBM Confidential
14
14
  function AdvantageSideNav(props) {
15
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;
16
16
  const [activeMenu, setActiveMenu] = React.useState(false);
17
- React.useState(null);
18
- // const [regionalModalIsOpen, setRegionalModalIsOpen] = React.useState(false);
19
- React.useState(null);
17
+ const [teamList, setTeamList] = React.useState(null);
18
+ const [regionalModalIsOpen, setRegionalModalIsOpen] = React.useState(false);
19
+ const [selectedTeam, setSelectedTeam] = React.useState(null);
20
20
  const isMenuOpen = isOpen || activeMenu;
21
21
  const windowLocation = window.location;
22
22
  const isPartnerUser = user?.type === USER_PLATFORM_ROLE.Partner;
@@ -61,6 +61,10 @@ function AdvantageSideNav(props) {
61
61
  destinationPath: homeLink,
62
62
  });
63
63
  };
64
+ const handleRegionalNewStartNewChat = (team) => {
65
+ const assistantLink = `${appLink?.newChatRedirect()}?teamName=${team.name}&teamId=${team.id}`;
66
+ window.open(assistantLink, "_self", "noopener,noreferrer");
67
+ };
64
68
  const handleToolsClick = () => {
65
69
  triggerEvent &&
66
70
  triggerEvent({
@@ -102,14 +106,19 @@ function AdvantageSideNav(props) {
102
106
  });
103
107
  };
104
108
  const handleAssistantClick = () => {
105
- let redirectLink = `${appLink.newChatRedirect()}?teamName=${teamSwitcherTeam.name}&teamId=${teamSwitcherTeam.id}`;
109
+ if (regionalTeam?.length > 1) {
110
+ setRegionalModalIsOpen(true);
111
+ setTeamList(regionalTeam?.map((team) => ({
112
+ id: team.id,
113
+ name: team.name,
114
+ })));
115
+ }
106
116
  triggerEvent &&
107
117
  triggerEvent({
108
118
  action: "Clicked on SideNav Assistant link",
109
119
  category: "Sidenav",
110
- destinationPath: redirectLink,
120
+ destinationPath: assistantLink,
111
121
  });
112
- window.open(redirectLink, "_self", "noopener,noreferrer");
113
122
  };
114
123
  const handleCreateJoinClick = () => {
115
124
  triggerEvent &&
@@ -141,11 +150,7 @@ function AdvantageSideNav(props) {
141
150
  };
142
151
  const assistantSideNavLink = (
143
152
  // assistantLink &&
144
- React.createElement(SideNavLink, { "data-testid": "sidenav-assistant-link", className: !enableChatButton ? `${prefix}--bmrg-advantage-sidenav__inactive-link` : "", disabled: Boolean(!enableChatButton),
145
- // isActive={assistantLink }
146
- renderIcon: ChatBot,
147
- // href={enableChatButton}
148
- onClick: enableChatButton ? handleAssistantClick : (e) => e.preventDefault() }, "Chat"));
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"));
149
154
  const catalogNavlink = navigation?.platform?.catalog?.url;
150
155
  const adminNavlink = navigation?.platform?.admin?.url;
151
156
  const showSecondDivider = (!isPartnerUser && showChatButton) ||
@@ -213,7 +218,20 @@ function AdvantageSideNav(props) {
213
218
  settingsLink ? (React.createElement(SideNavLink, { "data-testid": "sidenav-settings-link", renderIcon: Settings, href: settingsLink, onClick: (e) => {
214
219
  handleSettingsClick();
215
220
  } }, "Settings")) : null,
216
- adminNavlink ? (React.createElement(SideNavLink, { href: adminNavlink, renderIcon: LicenseThirdParty }, "Admin")) : null),
221
+ adminNavlink ? (React.createElement(SideNavLink, { href: adminNavlink, renderIcon: LicenseThirdParty }, "Admin")) : null,
222
+ regionalModalIsOpen && (React.createElement(ComposedModal, { className: `${prefix}--teamSelectionModalContainer`, open: regionalModalIsOpen, onClose: () => setRegionalModalIsOpen(false), onKeyDown: (e) => e.stopPropagation(), "data-testid": "select-team-chat-modal" },
223
+ React.createElement(ModalHeader, { title: "Select Team to Start a New Chat", closeModal: () => setRegionalModalIsOpen(false) }),
224
+ React.createElement(ModalBody, { className: `${prefix}--teamSelectModalBody` },
225
+ 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) })),
226
+ React.createElement(ModalFooter, null,
227
+ React.createElement(Button, { kind: "secondary", "data-testid": "select-team-chat-modal-cancel-button", onClick: () => setRegionalModalIsOpen(false) }, "Cancel"),
228
+ React.createElement(Button, { "data-modal-primary-focus": true, kind: "primary", disabled: !selectedTeam, "data-testid": "select-team-chat-modal-continue-button", onClick: () => {
229
+ if (selectedTeam) {
230
+ handleRegionalNewStartNewChat(selectedTeam);
231
+ setRegionalModalIsOpen(false);
232
+ // closeModal();
233
+ }
234
+ } }, "Continue"))))),
217
235
  children ? (React.createElement(React.Fragment, null,
218
236
  React.createElement(SideNavDivider, null),
219
237
  children)) : null)));
package/package.json CHANGED
@@ -1,13 +1,13 @@
1
1
  {
2
2
  "name": "@boomerang-io/carbon-addons-boomerang-react",
3
3
  "description": "Carbon Addons for Boomerang apps",
4
- "version": "4.6.11-beta.22",
4
+ "version": "4.6.11-beta.23",
5
5
  "author": {
6
6
  "name": "Tim Bula",
7
7
  "email": "timrbula@gmail.com"
8
8
  },
9
9
  "license": "Apache-2",
10
- "repository": {
10
+ "repository": {
11
11
  "type": "git",
12
12
  "url": "git@github.com:boomerang-io/carbon-addons-boomerang-react"
13
13
  },