@boomerang-io/carbon-addons-boomerang-react 4.6.11-beta.21 → 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
|
-
|
|
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
|
-
|
|
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:
|
|
129
|
+
destinationPath: assistantLink,
|
|
120
130
|
});
|
|
121
|
-
window.open(redirectLink, "_self", "noopener,noreferrer");
|
|
122
131
|
};
|
|
123
132
|
const handleCreateJoinClick = () => {
|
|
124
133
|
triggerEvent &&
|
|
@@ -150,9 +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, href: enableChatButton, onClick: enableChatButton ? handleAssistantClick : (e) => e.preventDefault() }, "Chat d"));
|
|
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"));
|
|
156
163
|
const catalogNavlink = navigation?.platform?.catalog?.url;
|
|
157
164
|
const adminNavlink = navigation?.platform?.admin?.url;
|
|
158
165
|
const showSecondDivider = (!isPartnerUser && showChatButton) ||
|
|
@@ -220,7 +227,20 @@ function AdvantageSideNav(props) {
|
|
|
220
227
|
settingsLink ? (React__default.default.createElement(react.SideNavLink, { "data-testid": "sidenav-settings-link", renderIcon: icons.Settings, href: settingsLink, onClick: (e) => {
|
|
221
228
|
handleSettingsClick();
|
|
222
229
|
} }, "Settings")) : null,
|
|
223
|
-
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"))))),
|
|
224
244
|
children ? (React__default.default.createElement(React__default.default.Fragment, null,
|
|
225
245
|
React__default.default.createElement(react.SideNavDivider, null),
|
|
226
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
|
-
|
|
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
|
-
|
|
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:
|
|
120
|
+
destinationPath: assistantLink,
|
|
111
121
|
});
|
|
112
|
-
window.open(redirectLink, "_self", "noopener,noreferrer");
|
|
113
122
|
};
|
|
114
123
|
const handleCreateJoinClick = () => {
|
|
115
124
|
triggerEvent &&
|
|
@@ -141,9 +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, href: enableChatButton, onClick: enableChatButton ? handleAssistantClick : (e) => e.preventDefault() }, "Chat d"));
|
|
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"));
|
|
147
154
|
const catalogNavlink = navigation?.platform?.catalog?.url;
|
|
148
155
|
const adminNavlink = navigation?.platform?.admin?.url;
|
|
149
156
|
const showSecondDivider = (!isPartnerUser && showChatButton) ||
|
|
@@ -211,7 +218,20 @@ function AdvantageSideNav(props) {
|
|
|
211
218
|
settingsLink ? (React.createElement(SideNavLink, { "data-testid": "sidenav-settings-link", renderIcon: Settings, href: settingsLink, onClick: (e) => {
|
|
212
219
|
handleSettingsClick();
|
|
213
220
|
} }, "Settings")) : null,
|
|
214
|
-
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"))))),
|
|
215
235
|
children ? (React.createElement(React.Fragment, null,
|
|
216
236
|
React.createElement(SideNavDivider, null),
|
|
217
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.
|
|
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
|
},
|