@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
|
-
|
|
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,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
|
-
|
|
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,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.
|
|
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
|
},
|