@boomerang-io/carbon-addons-boomerang-react 4.6.8-beta.8 → 4.6.9-beta.0
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.
- package/dist/cjs/components/AdvantageSideNav/AdvantageSideNav.js +3 -52
- package/dist/cjs/components/Header/Header.js +22 -0
- package/dist/esm/components/AdvantageSideNav/AdvantageSideNav.js +4 -53
- package/dist/esm/components/Header/Header.js +22 -0
- package/dist/types/index.d.ts +0 -2
- package/package.json +1 -1
- package/scss/components/AdvantageSideNav/_advantageSideNav.scss +0 -7
|
@@ -21,16 +21,9 @@ IBM Confidential
|
|
|
21
21
|
© Copyright IBM Corp. 2022, 2024
|
|
22
22
|
*/
|
|
23
23
|
function AdvantageSideNav(props) {
|
|
24
|
-
const { app,
|
|
25
|
-
// multipleRegionalTeams,
|
|
26
|
-
// teamList,
|
|
27
|
-
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;
|
|
24
|
+
const { app, 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;
|
|
28
25
|
const [activeSubmenu, setActiveSubmenu] = React__default.default.useState("");
|
|
29
26
|
const [activeMenu, setActiveMenu] = React__default.default.useState(false);
|
|
30
|
-
// const [multipleRegionalTeams, setMultipleRegionalTeams] = React.useState(false);
|
|
31
|
-
const [teamList, setTeamList] = React__default.default.useState(null);
|
|
32
|
-
const [regionalModalIsOpen, setRegionalModalIsOpen] = React__default.default.useState(false);
|
|
33
|
-
const [selectedTeam, setSelectedTeam] = React__default.default.useState(null);
|
|
34
27
|
const isMenuOpen = isOpen || activeMenu;
|
|
35
28
|
const windowLocation = window.location;
|
|
36
29
|
const isPartnerUser = user?.type === UserType.USER_PLATFORM_ROLE.Partner;
|
|
@@ -53,27 +46,7 @@ function AdvantageSideNav(props) {
|
|
|
53
46
|
destinationPath: homeLink,
|
|
54
47
|
});
|
|
55
48
|
};
|
|
56
|
-
const handleRegionalNewStartNewChat = (team) => {
|
|
57
|
-
alert("s");
|
|
58
|
-
const assistantLink = `${appLink?.newChatRedirect()}?teamName=${team.name}&teamId=${team.id}`;
|
|
59
|
-
window.open(assistantLink, "_self", "noopener,noreferrer");
|
|
60
|
-
};
|
|
61
49
|
const handleAssistantClick = () => {
|
|
62
|
-
alert("df");
|
|
63
|
-
setRegionalModalIsOpen(true);
|
|
64
|
-
console.log("regionalTeam", regionalTeam);
|
|
65
|
-
if (regionalTeam?.length > 1) {
|
|
66
|
-
// setMultipleRegionalTeams(true);
|
|
67
|
-
setRegionalModalIsOpen(true);
|
|
68
|
-
setTeamList(regionalTeam?.map((team) => ({
|
|
69
|
-
id: team.id,
|
|
70
|
-
name: team.name,
|
|
71
|
-
})));
|
|
72
|
-
}
|
|
73
|
-
// if(multipleRegionalTeams)
|
|
74
|
-
// {
|
|
75
|
-
// setRegionalModalIsOpen(true);
|
|
76
|
-
// }
|
|
77
50
|
triggerEvent &&
|
|
78
51
|
triggerEvent({
|
|
79
52
|
action: "Clicked on SideNav Assistant link",
|
|
@@ -141,11 +114,7 @@ function AdvantageSideNav(props) {
|
|
|
141
114
|
//@ts-ignore
|
|
142
115
|
accountsRef.current = Array(accounts?.length).fill().map((_, i) => accountsRef.current[i] || React__default.default.createRef());
|
|
143
116
|
}
|
|
144
|
-
const assistantSideNavLink = (React__default.default.createElement(react.SideNavLink, { "data-testid": "sidenav-assistant-link", className: !enableChatButton ? `${settings.prefix}--bmrg-advantage-sidenav__inactive-link` : "", disabled: Boolean(!enableChatButton),
|
|
145
|
-
// isActive={windowLocation.href.includes(assistantLink)}
|
|
146
|
-
renderIcon: icons.ChatBot,
|
|
147
|
-
// href={enableChatButton && assistantLink}
|
|
148
|
-
onClick: enableChatButton ? handleAssistantClick : (e) => e.preventDefault() }, `Start a ${defaultAssistantLink ? "" : "New "}Chat`));
|
|
117
|
+
const assistantSideNavLink = assistantLink && (React__default.default.createElement(react.SideNavLink, { "data-testid": "sidenav-assistant-link", className: !enableChatButton ? `${settings.prefix}--bmrg-advantage-sidenav__inactive-link` : "", disabled: Boolean(!enableChatButton), isActive: windowLocation.href.includes(assistantLink), renderIcon: icons.ChatBot, href: enableChatButton && assistantLink, onClick: enableChatButton ? handleAssistantClick : (e) => e.preventDefault() }, `Start a ${defaultAssistantLink ? "" : "New "}Chat`));
|
|
149
118
|
return (React__default.default.createElement(react.SideNav, { "aria-label": "sidenav-container", className: cx__default.default(`${settings.prefix}--bmrg-advantage-sidenav-container`, className, {
|
|
150
119
|
"--closed": !isMenuOpen,
|
|
151
120
|
}), "data-testid": "sidenav-container", isRail: true, expanded: isMenuOpen, onToggle: () => setActiveSubmenu(""), onMouseEnter: () => setActiveMenu(true), onMouseLeave: () => {
|
|
@@ -164,28 +133,10 @@ function AdvantageSideNav(props) {
|
|
|
164
133
|
handleHomeClick();
|
|
165
134
|
} }, "Home")) : null,
|
|
166
135
|
!isPartnerUser &&
|
|
136
|
+
assistantLink &&
|
|
167
137
|
showChatButton &&
|
|
168
138
|
(showChatTooltip ? (React__default.default.createElement(TooltipHover.default, { className: `${settings.prefix}--bmrg-side-nav__tooltip`, content: tooltipMessage, direction: "right" },
|
|
169
139
|
React__default.default.createElement("span", null, assistantSideNavLink))) : (assistantSideNavLink)),
|
|
170
|
-
regionalModalIsOpen && React__default.default.createElement(react.ComposedModal
|
|
171
|
-
// composedModalProps={{ containerClassName: teamSelectionModalContainer }}
|
|
172
|
-
, {
|
|
173
|
-
// composedModalProps={{ containerClassName: teamSelectionModalContainer }}
|
|
174
|
-
modalHeaderProps: {
|
|
175
|
-
title: "Select Team to Start a New Chat",
|
|
176
|
-
}, open: regionalModalIsOpen, onClose: () => setRegionalModalIsOpen(false), onKeyDown: (e) => e.stopPropagation(), "data-testid": "select-team-chat-modal" }, ({ closeModal }) => {
|
|
177
|
-
return (React__default.default.createElement(React__default.default.Fragment, null,
|
|
178
|
-
React__default.default.createElement(react.ModalBody, { className: `${settings.prefix}--teamSelectModalBody` },
|
|
179
|
-
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) })),
|
|
180
|
-
React__default.default.createElement(react.ModalFooter, null,
|
|
181
|
-
React__default.default.createElement(react.Button, { kind: "secondary", "data-testid": "select-team-chat-modal-cancel-button", onClick: closeModal }, "Cancel"),
|
|
182
|
-
React__default.default.createElement(react.Button, { "data-modal-primary-focus": true, kind: "primary", disabled: !selectedTeam, "data-testid": "select-team-chat-modal-continue-button", onClick: () => {
|
|
183
|
-
if (selectedTeam) {
|
|
184
|
-
handleRegionalNewStartNewChat(selectedTeam);
|
|
185
|
-
closeModal();
|
|
186
|
-
}
|
|
187
|
-
} }, "Continue"))));
|
|
188
|
-
}),
|
|
189
140
|
!isPartnerUser && joinCreateTrigger ? (React__default.default.createElement(react.SideNavLink, { "data-testid": "sidenav-create-join-trigger", renderIcon: icons.AddAlt, onClick: (e) => {
|
|
190
141
|
joinCreateTrigger(e);
|
|
191
142
|
handleCreateJoinClick();
|
|
@@ -31,6 +31,7 @@ const MenuListId = {
|
|
|
31
31
|
SideNav: "header-sidenav-menu",
|
|
32
32
|
Support: "header-support-menu",
|
|
33
33
|
instanceSwitcher: "header-instanceSwitcher-menu",
|
|
34
|
+
defaultTeamsFlowMenu: "header-defaultTeamsFlowMenu-menu",
|
|
34
35
|
Switcher: "header-switcher-menu",
|
|
35
36
|
};
|
|
36
37
|
const MenuButtonId = {
|
|
@@ -41,6 +42,7 @@ const MenuButtonId = {
|
|
|
41
42
|
SideNav: "header-sidenav-menu-button",
|
|
42
43
|
Support: "header-support-menu-button",
|
|
43
44
|
InstanceSwitcher: "header-instanceSwitcher-menu-button",
|
|
45
|
+
defaultTeamsFlowMenu: "header-defaultTeamsFlowMenu-menu-button",
|
|
44
46
|
Switcher: "header-switcher-menu-button",
|
|
45
47
|
};
|
|
46
48
|
const MenuAriaLabelRecord = {
|
|
@@ -50,6 +52,7 @@ const MenuAriaLabelRecord = {
|
|
|
50
52
|
RightPanel: "RightPanel dialog",
|
|
51
53
|
SideNav: "SideNav menu",
|
|
52
54
|
instanceSwitcher: "Instance Switcher Menu",
|
|
55
|
+
defaultTeamsFlowMenu: "Default Teams Flow Menu",
|
|
53
56
|
Support: "Support menu",
|
|
54
57
|
Switcher: "Switcher menu",
|
|
55
58
|
};
|
|
@@ -67,6 +70,7 @@ function Header(props) {
|
|
|
67
70
|
? navLinks.map((link) => (React__default.default.createElement(react.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)))
|
|
68
71
|
: null),
|
|
69
72
|
React__default.default.createElement(react.HeaderGlobalBar, null,
|
|
73
|
+
React__default.default.createElement(DefaultTeamsFlowMenu, { menuItems: platform?.instances }),
|
|
70
74
|
props?.instanceSwitcherEnabled && (React__default.default.createElement(InstanceSwitcherMenu, { enabled: Boolean(props.instanceSwitcherEnabled), menuItems: platform?.instances })),
|
|
71
75
|
React__default.default.createElement(RequestsMenu, { baseEnvUrl: baseEnvUrl, enabled: Boolean(props.requestSummary), summary: props.requestSummary }),
|
|
72
76
|
React__default.default.createElement(NotificationsMenu, { baseEnvUrl: baseEnvUrl, baseServicesUrl: baseServicesUrl, enabled: Boolean(props.enableNotifications), countEnabled: Boolean(props.enableNotificationsCount) }),
|
|
@@ -94,6 +98,24 @@ function InstanceSwitcherMenu(props) {
|
|
|
94
98
|
" ")) : ("")))))
|
|
95
99
|
: null)) : null));
|
|
96
100
|
}
|
|
101
|
+
function DefaultTeamsFlowMenu(props) {
|
|
102
|
+
const currentURL = window?.location?.href;
|
|
103
|
+
const { isOpen, toggleActive, ref } = useHeaderMenu.default(MenuButtonId.defaultTeamsFlowMenu);
|
|
104
|
+
// if (!props.enabled) {
|
|
105
|
+
// return null;
|
|
106
|
+
// }
|
|
107
|
+
return (React__default.default.createElement("div", { className: `${settings.prefix}--bmrg-header-instance-switcher`, style: { position: "relative" }, ref: ref },
|
|
108
|
+
React__default.default.createElement("button", { "aria-controls": MenuListId.defaultTeamsFlowMenu, "aria-expanded": isOpen, "aria-haspopup": "menu", "aria-label": MenuAriaLabelRecord.defaultTeamsFlowMenu, className: headerButtonClassNames, "data-testid": "header-defaultTeamsFlow-link", id: MenuButtonId.defaultTeamsFlowMenu, onClick: toggleActive },
|
|
109
|
+
React__default.default.createElement(icons.Wikis, { size: 20 })),
|
|
110
|
+
isOpen ? (React__default.default.createElement(HeaderMenu.default, { "aria-labelledby": MenuButtonId.defaultTeamsFlowMenu, id: MenuListId.defaultTeamsFlowMenu }, Array.isArray(props.menuItems)
|
|
111
|
+
? props.menuItems.map((item) => (React__default.default.createElement(react.HeaderMenuItem, { "aria-label": `Default Teams for ${item.instanceName}`, "data-testid": "header-menu-default-teams-flow", href: item.url, key: item.instanceName, target: "_self", rel: "noopener noreferrer" },
|
|
112
|
+
React__default.default.createElement("div", { className: instanceCheckMarkContainerClass },
|
|
113
|
+
React__default.default.createElement("span", null, item.instanceName),
|
|
114
|
+
item.url && currentURL?.includes(item.url) ? (React__default.default.createElement("span", null,
|
|
115
|
+
React__default.default.createElement(icons.Checkmark, null),
|
|
116
|
+
" ")) : ("")))))
|
|
117
|
+
: null)) : null));
|
|
118
|
+
}
|
|
97
119
|
function RequestsMenu(props) {
|
|
98
120
|
const { isOpen, toggleActive, ref } = useHeaderMenu.default(MenuButtonId.Requests);
|
|
99
121
|
if (!props.enabled) {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import cx from 'classnames';
|
|
3
|
-
import { SideNavLink, SideNav, SideNavItems, SideNavDivider,
|
|
3
|
+
import { SideNavLink, SideNav, SideNavItems, SideNavDivider, SkeletonPlaceholder, SideNavMenu } from '@carbon/react';
|
|
4
4
|
import TooltipHover from '../TooltipHover/TooltipHover.js';
|
|
5
5
|
import { ChatBot, Home, AddAlt, UserMultiple, User, Locked, Unlocked, ChevronRight, GroupAccount } from '@carbon/react/icons';
|
|
6
6
|
import { USER_PLATFORM_ROLE } from '../../constants/UserType.js';
|
|
@@ -12,16 +12,9 @@ IBM Confidential
|
|
|
12
12
|
© Copyright IBM Corp. 2022, 2024
|
|
13
13
|
*/
|
|
14
14
|
function AdvantageSideNav(props) {
|
|
15
|
-
const { app,
|
|
16
|
-
// multipleRegionalTeams,
|
|
17
|
-
// teamList,
|
|
18
|
-
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;
|
|
15
|
+
const { app, 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;
|
|
19
16
|
const [activeSubmenu, setActiveSubmenu] = React.useState("");
|
|
20
17
|
const [activeMenu, setActiveMenu] = React.useState(false);
|
|
21
|
-
// const [multipleRegionalTeams, setMultipleRegionalTeams] = React.useState(false);
|
|
22
|
-
const [teamList, setTeamList] = React.useState(null);
|
|
23
|
-
const [regionalModalIsOpen, setRegionalModalIsOpen] = React.useState(false);
|
|
24
|
-
const [selectedTeam, setSelectedTeam] = React.useState(null);
|
|
25
18
|
const isMenuOpen = isOpen || activeMenu;
|
|
26
19
|
const windowLocation = window.location;
|
|
27
20
|
const isPartnerUser = user?.type === USER_PLATFORM_ROLE.Partner;
|
|
@@ -44,27 +37,7 @@ function AdvantageSideNav(props) {
|
|
|
44
37
|
destinationPath: homeLink,
|
|
45
38
|
});
|
|
46
39
|
};
|
|
47
|
-
const handleRegionalNewStartNewChat = (team) => {
|
|
48
|
-
alert("s");
|
|
49
|
-
const assistantLink = `${appLink?.newChatRedirect()}?teamName=${team.name}&teamId=${team.id}`;
|
|
50
|
-
window.open(assistantLink, "_self", "noopener,noreferrer");
|
|
51
|
-
};
|
|
52
40
|
const handleAssistantClick = () => {
|
|
53
|
-
alert("df");
|
|
54
|
-
setRegionalModalIsOpen(true);
|
|
55
|
-
console.log("regionalTeam", regionalTeam);
|
|
56
|
-
if (regionalTeam?.length > 1) {
|
|
57
|
-
// setMultipleRegionalTeams(true);
|
|
58
|
-
setRegionalModalIsOpen(true);
|
|
59
|
-
setTeamList(regionalTeam?.map((team) => ({
|
|
60
|
-
id: team.id,
|
|
61
|
-
name: team.name,
|
|
62
|
-
})));
|
|
63
|
-
}
|
|
64
|
-
// if(multipleRegionalTeams)
|
|
65
|
-
// {
|
|
66
|
-
// setRegionalModalIsOpen(true);
|
|
67
|
-
// }
|
|
68
41
|
triggerEvent &&
|
|
69
42
|
triggerEvent({
|
|
70
43
|
action: "Clicked on SideNav Assistant link",
|
|
@@ -132,11 +105,7 @@ function AdvantageSideNav(props) {
|
|
|
132
105
|
//@ts-ignore
|
|
133
106
|
accountsRef.current = Array(accounts?.length).fill().map((_, i) => accountsRef.current[i] || React.createRef());
|
|
134
107
|
}
|
|
135
|
-
const assistantSideNavLink = (React.createElement(SideNavLink, { "data-testid": "sidenav-assistant-link", className: !enableChatButton ? `${prefix}--bmrg-advantage-sidenav__inactive-link` : "", disabled: Boolean(!enableChatButton),
|
|
136
|
-
// isActive={windowLocation.href.includes(assistantLink)}
|
|
137
|
-
renderIcon: ChatBot,
|
|
138
|
-
// href={enableChatButton && assistantLink}
|
|
139
|
-
onClick: enableChatButton ? handleAssistantClick : (e) => e.preventDefault() }, `Start a ${defaultAssistantLink ? "" : "New "}Chat`));
|
|
108
|
+
const assistantSideNavLink = assistantLink && (React.createElement(SideNavLink, { "data-testid": "sidenav-assistant-link", className: !enableChatButton ? `${prefix}--bmrg-advantage-sidenav__inactive-link` : "", disabled: Boolean(!enableChatButton), isActive: windowLocation.href.includes(assistantLink), renderIcon: ChatBot, href: enableChatButton && assistantLink, onClick: enableChatButton ? handleAssistantClick : (e) => e.preventDefault() }, `Start a ${defaultAssistantLink ? "" : "New "}Chat`));
|
|
140
109
|
return (React.createElement(SideNav, { "aria-label": "sidenav-container", className: cx(`${prefix}--bmrg-advantage-sidenav-container`, className, {
|
|
141
110
|
"--closed": !isMenuOpen,
|
|
142
111
|
}), "data-testid": "sidenav-container", isRail: true, expanded: isMenuOpen, onToggle: () => setActiveSubmenu(""), onMouseEnter: () => setActiveMenu(true), onMouseLeave: () => {
|
|
@@ -155,28 +124,10 @@ function AdvantageSideNav(props) {
|
|
|
155
124
|
handleHomeClick();
|
|
156
125
|
} }, "Home")) : null,
|
|
157
126
|
!isPartnerUser &&
|
|
127
|
+
assistantLink &&
|
|
158
128
|
showChatButton &&
|
|
159
129
|
(showChatTooltip ? (React.createElement(TooltipHover, { className: `${prefix}--bmrg-side-nav__tooltip`, content: tooltipMessage, direction: "right" },
|
|
160
130
|
React.createElement("span", null, assistantSideNavLink))) : (assistantSideNavLink)),
|
|
161
|
-
regionalModalIsOpen && React.createElement(ComposedModal
|
|
162
|
-
// composedModalProps={{ containerClassName: teamSelectionModalContainer }}
|
|
163
|
-
, {
|
|
164
|
-
// composedModalProps={{ containerClassName: teamSelectionModalContainer }}
|
|
165
|
-
modalHeaderProps: {
|
|
166
|
-
title: "Select Team to Start a New Chat",
|
|
167
|
-
}, open: regionalModalIsOpen, onClose: () => setRegionalModalIsOpen(false), onKeyDown: (e) => e.stopPropagation(), "data-testid": "select-team-chat-modal" }, ({ closeModal }) => {
|
|
168
|
-
return (React.createElement(React.Fragment, null,
|
|
169
|
-
React.createElement(ModalBody, { className: `${prefix}--teamSelectModalBody` },
|
|
170
|
-
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) })),
|
|
171
|
-
React.createElement(ModalFooter, null,
|
|
172
|
-
React.createElement(Button, { kind: "secondary", "data-testid": "select-team-chat-modal-cancel-button", onClick: closeModal }, "Cancel"),
|
|
173
|
-
React.createElement(Button, { "data-modal-primary-focus": true, kind: "primary", disabled: !selectedTeam, "data-testid": "select-team-chat-modal-continue-button", onClick: () => {
|
|
174
|
-
if (selectedTeam) {
|
|
175
|
-
handleRegionalNewStartNewChat(selectedTeam);
|
|
176
|
-
closeModal();
|
|
177
|
-
}
|
|
178
|
-
} }, "Continue"))));
|
|
179
|
-
}),
|
|
180
131
|
!isPartnerUser && joinCreateTrigger ? (React.createElement(SideNavLink, { "data-testid": "sidenav-create-join-trigger", renderIcon: AddAlt, onClick: (e) => {
|
|
181
132
|
joinCreateTrigger(e);
|
|
182
133
|
handleCreateJoinClick();
|
|
@@ -23,6 +23,7 @@ const MenuListId = {
|
|
|
23
23
|
SideNav: "header-sidenav-menu",
|
|
24
24
|
Support: "header-support-menu",
|
|
25
25
|
instanceSwitcher: "header-instanceSwitcher-menu",
|
|
26
|
+
defaultTeamsFlowMenu: "header-defaultTeamsFlowMenu-menu",
|
|
26
27
|
Switcher: "header-switcher-menu",
|
|
27
28
|
};
|
|
28
29
|
const MenuButtonId = {
|
|
@@ -33,6 +34,7 @@ const MenuButtonId = {
|
|
|
33
34
|
SideNav: "header-sidenav-menu-button",
|
|
34
35
|
Support: "header-support-menu-button",
|
|
35
36
|
InstanceSwitcher: "header-instanceSwitcher-menu-button",
|
|
37
|
+
defaultTeamsFlowMenu: "header-defaultTeamsFlowMenu-menu-button",
|
|
36
38
|
Switcher: "header-switcher-menu-button",
|
|
37
39
|
};
|
|
38
40
|
const MenuAriaLabelRecord = {
|
|
@@ -42,6 +44,7 @@ const MenuAriaLabelRecord = {
|
|
|
42
44
|
RightPanel: "RightPanel dialog",
|
|
43
45
|
SideNav: "SideNav menu",
|
|
44
46
|
instanceSwitcher: "Instance Switcher Menu",
|
|
47
|
+
defaultTeamsFlowMenu: "Default Teams Flow Menu",
|
|
45
48
|
Support: "Support menu",
|
|
46
49
|
Switcher: "Switcher menu",
|
|
47
50
|
};
|
|
@@ -59,6 +62,7 @@ function Header(props) {
|
|
|
59
62
|
? 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)))
|
|
60
63
|
: null),
|
|
61
64
|
React.createElement(HeaderGlobalBar, null,
|
|
65
|
+
React.createElement(DefaultTeamsFlowMenu, { menuItems: platform?.instances }),
|
|
62
66
|
props?.instanceSwitcherEnabled && (React.createElement(InstanceSwitcherMenu, { enabled: Boolean(props.instanceSwitcherEnabled), menuItems: platform?.instances })),
|
|
63
67
|
React.createElement(RequestsMenu, { baseEnvUrl: baseEnvUrl, enabled: Boolean(props.requestSummary), summary: props.requestSummary }),
|
|
64
68
|
React.createElement(NotificationsMenu, { baseEnvUrl: baseEnvUrl, baseServicesUrl: baseServicesUrl, enabled: Boolean(props.enableNotifications), countEnabled: Boolean(props.enableNotificationsCount) }),
|
|
@@ -86,6 +90,24 @@ function InstanceSwitcherMenu(props) {
|
|
|
86
90
|
" ")) : ("")))))
|
|
87
91
|
: null)) : null));
|
|
88
92
|
}
|
|
93
|
+
function DefaultTeamsFlowMenu(props) {
|
|
94
|
+
const currentURL = window?.location?.href;
|
|
95
|
+
const { isOpen, toggleActive, ref } = useHeaderMenu(MenuButtonId.defaultTeamsFlowMenu);
|
|
96
|
+
// if (!props.enabled) {
|
|
97
|
+
// return null;
|
|
98
|
+
// }
|
|
99
|
+
return (React.createElement("div", { className: `${prefix}--bmrg-header-instance-switcher`, style: { position: "relative" }, ref: ref },
|
|
100
|
+
React.createElement("button", { "aria-controls": MenuListId.defaultTeamsFlowMenu, "aria-expanded": isOpen, "aria-haspopup": "menu", "aria-label": MenuAriaLabelRecord.defaultTeamsFlowMenu, className: headerButtonClassNames, "data-testid": "header-defaultTeamsFlow-link", id: MenuButtonId.defaultTeamsFlowMenu, onClick: toggleActive },
|
|
101
|
+
React.createElement(Wikis, { size: 20 })),
|
|
102
|
+
isOpen ? (React.createElement(HeaderMenu, { "aria-labelledby": MenuButtonId.defaultTeamsFlowMenu, id: MenuListId.defaultTeamsFlowMenu }, Array.isArray(props.menuItems)
|
|
103
|
+
? props.menuItems.map((item) => (React.createElement(HeaderMenuItem, { "aria-label": `Default Teams for ${item.instanceName}`, "data-testid": "header-menu-default-teams-flow", href: item.url, key: item.instanceName, target: "_self", rel: "noopener noreferrer" },
|
|
104
|
+
React.createElement("div", { className: instanceCheckMarkContainerClass },
|
|
105
|
+
React.createElement("span", null, item.instanceName),
|
|
106
|
+
item.url && currentURL?.includes(item.url) ? (React.createElement("span", null,
|
|
107
|
+
React.createElement(Checkmark, null),
|
|
108
|
+
" ")) : ("")))))
|
|
109
|
+
: null)) : null));
|
|
110
|
+
}
|
|
89
111
|
function RequestsMenu(props) {
|
|
90
112
|
const { isOpen, toggleActive, ref } = useHeaderMenu(MenuButtonId.Requests);
|
|
91
113
|
if (!props.enabled) {
|
package/dist/types/index.d.ts
CHANGED
package/package.json
CHANGED