@boomerang-io/carbon-addons-boomerang-react 4.6.9-beta.5 → 4.6.9-beta.50
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.
|
@@ -24,6 +24,10 @@ function AdvantageSideNav(props) {
|
|
|
24
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;
|
|
25
25
|
const [activeSubmenu, setActiveSubmenu] = React__default.default.useState("");
|
|
26
26
|
const [activeMenu, setActiveMenu] = React__default.default.useState(false);
|
|
27
|
+
const [isCreateOpen, setIsCreateOpen] = React.useState(false);
|
|
28
|
+
React.useEffect(() => {
|
|
29
|
+
console.log('Updated state:', isCreateOpen);
|
|
30
|
+
}, [isCreateOpen]);
|
|
27
31
|
const isMenuOpen = isOpen || activeMenu;
|
|
28
32
|
const windowLocation = window.location;
|
|
29
33
|
const isPartnerUser = user?.type === UserType.USER_PLATFORM_ROLE.Partner;
|
|
@@ -84,6 +88,18 @@ function AdvantageSideNav(props) {
|
|
|
84
88
|
destinationPath: service.url,
|
|
85
89
|
});
|
|
86
90
|
};
|
|
91
|
+
console.log("IsCreateOpen outside", isCreateOpen);
|
|
92
|
+
const handleCreateClick = () => {
|
|
93
|
+
console.log("clicked");
|
|
94
|
+
setIsCreateOpen(true);
|
|
95
|
+
console.log("IsCreateOpen inside", isCreateOpen);
|
|
96
|
+
triggerEvent &&
|
|
97
|
+
triggerEvent({
|
|
98
|
+
action: "Clicked on SideNav Create link",
|
|
99
|
+
category: "Sidenav",
|
|
100
|
+
// destinationPath: service.url,
|
|
101
|
+
});
|
|
102
|
+
};
|
|
87
103
|
const handleLaunchpadLink = (event) => {
|
|
88
104
|
event.preventDefault();
|
|
89
105
|
// remediation to close menu, submenu and accordion when select a team on Launchpad
|
|
@@ -115,6 +131,11 @@ function AdvantageSideNav(props) {
|
|
|
115
131
|
accountsRef.current = Array(accounts?.length).fill().map((_, i) => accountsRef.current[i] || React__default.default.createRef());
|
|
116
132
|
}
|
|
117
133
|
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`));
|
|
134
|
+
const createSideNavLink = React__default.default.createElement(react.SideNavLink, { "data-testid": "sidenav-assistant-link", className: !enableChatButton ? `${settings.prefix}--bmrg-advantage-sidenav__inactive-link` : "", disabled: Boolean(!enableChatButton),
|
|
135
|
+
// isActive={windowLocation.href.includes(assistantLink)}
|
|
136
|
+
renderIcon: icons.AddAlt,
|
|
137
|
+
// href={enableChatButton && assistantLink}
|
|
138
|
+
onClick: handleCreateClick }, "Create");
|
|
118
139
|
return (React__default.default.createElement(react.SideNav, { "aria-label": "sidenav-container", className: cx__default.default(`${settings.prefix}--bmrg-advantage-sidenav-container`, className, {
|
|
119
140
|
"--closed": !isMenuOpen,
|
|
120
141
|
}), "data-testid": "sidenav-container", isRail: true, expanded: isMenuOpen, onToggle: () => setActiveSubmenu(""), onMouseEnter: () => setActiveMenu(true), onMouseLeave: () => {
|
|
@@ -137,6 +158,17 @@ function AdvantageSideNav(props) {
|
|
|
137
158
|
showChatButton &&
|
|
138
159
|
(showChatTooltip ? (React__default.default.createElement(TooltipHover.default, { className: `${settings.prefix}--bmrg-side-nav__tooltip`, content: tooltipMessage, direction: "right" },
|
|
139
160
|
React__default.default.createElement("span", null, assistantSideNavLink))) : (assistantSideNavLink)),
|
|
161
|
+
createSideNavLink,
|
|
162
|
+
isCreateOpen && React__default.default.createElement(react.ComposedModal, { "aria-label": "Feedback", open: isCreateOpen, className: `${settings.prefix}--bmrg-feedback-container ${settings.prefix}--bmrg-header-modal`, onClose: setIsCreateOpen(false), onKeyDown: (e) => e.stopPropagation() },
|
|
163
|
+
React__default.default.createElement(react.ModalHeader, { title: "Choose your Method to Create:", closeModal: setIsCreateOpen(!isCreateOpen) }),
|
|
164
|
+
React__default.default.createElement(react.ModalBody, null,
|
|
165
|
+
React__default.default.createElement("div", null,
|
|
166
|
+
React__default.default.createElement("a", { href: "www.google.com" },
|
|
167
|
+
React__default.default.createElement("p", null, "Create an Agent"),
|
|
168
|
+
React__default.default.createElement("span", null, "Simple single agent configuration leveraging tools, via chat and general field inputs")),
|
|
169
|
+
React__default.default.createElement("a", { href: "www.youtube.com" },
|
|
170
|
+
React__default.default.createElement("p", null, "Create an Agentic App/ Workflow"),
|
|
171
|
+
React__default.default.createElement("span", null, "Advanced orchestration of multiple agents into workflows with configurable frameworks"))))),
|
|
140
172
|
!isPartnerUser && joinCreateTrigger ? (React__default.default.createElement(react.SideNavLink, { "data-testid": "sidenav-create-join-trigger", renderIcon: icons.AddAlt, onClick: (e) => {
|
|
141
173
|
joinCreateTrigger(e);
|
|
142
174
|
handleCreateJoinClick();
|
|
@@ -60,8 +60,6 @@ const headerButtonClassNames = "cds--btn--icon-only cds--header__action cds--btn
|
|
|
60
60
|
const instanceCheckMarkContainerClass = "instance-checkmark-style-container";
|
|
61
61
|
function Header(props) {
|
|
62
62
|
const { productName, baseEnvUrl, baseServicesUrl, carbonTheme = "g10", className, navLinks, platform, prefixName = "", rightPanel, skipToContentProps, templateMeteringEvent, triggerEvent, userTeams, } = props;
|
|
63
|
-
console.log("userTeams", userTeams);
|
|
64
|
-
console.log("props.userTeams", props.userTeams);
|
|
65
63
|
return (React__default.default.createElement(React__default.default.Fragment, null,
|
|
66
64
|
React__default.default.createElement(react.Theme, { theme: carbonTheme },
|
|
67
65
|
React__default.default.createElement(react.Header, { "aria-label": "App navigation header", className: className },
|
|
@@ -101,21 +99,12 @@ function InstanceSwitcherMenu(props) {
|
|
|
101
99
|
: null)) : null));
|
|
102
100
|
}
|
|
103
101
|
function DefaultTeamsFlowMenu(props) {
|
|
104
|
-
const currentURL = window?.location?.href;
|
|
105
102
|
const { isOpen, toggleActive, ref } = useHeaderMenu.default(MenuButtonId.defaultTeamsFlowMenu);
|
|
106
103
|
// if (!props.enabled) {
|
|
107
104
|
// return null;
|
|
108
105
|
// }
|
|
109
106
|
return (React__default.default.createElement("div", { className: `${settings.prefix}--bmrg-header-instance-switcher`, style: { position: "relative" }, ref: ref },
|
|
110
|
-
React__default.default.createElement(
|
|
111
|
-
isOpen ? (React__default.default.createElement(HeaderMenu.default, { "aria-labelledby": MenuButtonId.defaultTeamsFlowMenu, id: MenuListId.defaultTeamsFlowMenu }, Array.isArray(props.menuItems)
|
|
112
|
-
? props.menuItems.map((item) => (React__default.default.createElement(react.HeaderMenuItem, { "aria-label": `Default Teams for ${item.name}`, "data-testid": "header-menu-default-teams-flow", href: item.url, key: item.name, target: "_self", rel: "noopener noreferrer" },
|
|
113
|
-
React__default.default.createElement("div", { className: instanceCheckMarkContainerClass },
|
|
114
|
-
React__default.default.createElement("span", null, item.name),
|
|
115
|
-
item.url && currentURL?.includes(item.url) ? (React__default.default.createElement("span", null,
|
|
116
|
-
React__default.default.createElement(icons.Checkmark, null),
|
|
117
|
-
" ")) : ("")))))
|
|
118
|
-
: null)) : null));
|
|
107
|
+
React__default.default.createElement(react.Dropdown, { style: { width: "10rem", marginBottom: "1rem" }, label: "", title: "Dropdown", items: props.menuItems, itemToString: (item) => item ? item.name : " " })));
|
|
119
108
|
}
|
|
120
109
|
function RequestsMenu(props) {
|
|
121
110
|
const { isOpen, toggleActive, ref } = useHeaderMenu.default(MenuButtonId.Requests);
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import React from 'react';
|
|
1
|
+
import React, { useState, useEffect } from 'react';
|
|
2
2
|
import cx from 'classnames';
|
|
3
|
-
import { SideNavLink, SideNav, SideNavItems, SideNavDivider, SkeletonPlaceholder, SideNavMenu } from '@carbon/react';
|
|
3
|
+
import { SideNavLink, SideNav, SideNavItems, SideNavDivider, ComposedModal, ModalHeader, ModalBody, SkeletonPlaceholder, SideNavMenu } from '@carbon/react';
|
|
4
4
|
import TooltipHover from '../TooltipHover/TooltipHover.js';
|
|
5
|
-
import { ChatBot,
|
|
5
|
+
import { ChatBot, AddAlt, Home, UserMultiple, User, Locked, Unlocked, ChevronRight, GroupAccount } from '@carbon/react/icons';
|
|
6
6
|
import { USER_PLATFORM_ROLE } from '../../constants/UserType.js';
|
|
7
7
|
import { prefix } from '../../internal/settings.js';
|
|
8
8
|
|
|
@@ -15,6 +15,10 @@ function AdvantageSideNav(props) {
|
|
|
15
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;
|
|
16
16
|
const [activeSubmenu, setActiveSubmenu] = React.useState("");
|
|
17
17
|
const [activeMenu, setActiveMenu] = React.useState(false);
|
|
18
|
+
const [isCreateOpen, setIsCreateOpen] = useState(false);
|
|
19
|
+
useEffect(() => {
|
|
20
|
+
console.log('Updated state:', isCreateOpen);
|
|
21
|
+
}, [isCreateOpen]);
|
|
18
22
|
const isMenuOpen = isOpen || activeMenu;
|
|
19
23
|
const windowLocation = window.location;
|
|
20
24
|
const isPartnerUser = user?.type === USER_PLATFORM_ROLE.Partner;
|
|
@@ -75,6 +79,18 @@ function AdvantageSideNav(props) {
|
|
|
75
79
|
destinationPath: service.url,
|
|
76
80
|
});
|
|
77
81
|
};
|
|
82
|
+
console.log("IsCreateOpen outside", isCreateOpen);
|
|
83
|
+
const handleCreateClick = () => {
|
|
84
|
+
console.log("clicked");
|
|
85
|
+
setIsCreateOpen(true);
|
|
86
|
+
console.log("IsCreateOpen inside", isCreateOpen);
|
|
87
|
+
triggerEvent &&
|
|
88
|
+
triggerEvent({
|
|
89
|
+
action: "Clicked on SideNav Create link",
|
|
90
|
+
category: "Sidenav",
|
|
91
|
+
// destinationPath: service.url,
|
|
92
|
+
});
|
|
93
|
+
};
|
|
78
94
|
const handleLaunchpadLink = (event) => {
|
|
79
95
|
event.preventDefault();
|
|
80
96
|
// remediation to close menu, submenu and accordion when select a team on Launchpad
|
|
@@ -106,6 +122,11 @@ function AdvantageSideNav(props) {
|
|
|
106
122
|
accountsRef.current = Array(accounts?.length).fill().map((_, i) => accountsRef.current[i] || React.createRef());
|
|
107
123
|
}
|
|
108
124
|
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`));
|
|
125
|
+
const createSideNavLink = React.createElement(SideNavLink, { "data-testid": "sidenav-assistant-link", className: !enableChatButton ? `${prefix}--bmrg-advantage-sidenav__inactive-link` : "", disabled: Boolean(!enableChatButton),
|
|
126
|
+
// isActive={windowLocation.href.includes(assistantLink)}
|
|
127
|
+
renderIcon: AddAlt,
|
|
128
|
+
// href={enableChatButton && assistantLink}
|
|
129
|
+
onClick: handleCreateClick }, "Create");
|
|
109
130
|
return (React.createElement(SideNav, { "aria-label": "sidenav-container", className: cx(`${prefix}--bmrg-advantage-sidenav-container`, className, {
|
|
110
131
|
"--closed": !isMenuOpen,
|
|
111
132
|
}), "data-testid": "sidenav-container", isRail: true, expanded: isMenuOpen, onToggle: () => setActiveSubmenu(""), onMouseEnter: () => setActiveMenu(true), onMouseLeave: () => {
|
|
@@ -128,6 +149,17 @@ function AdvantageSideNav(props) {
|
|
|
128
149
|
showChatButton &&
|
|
129
150
|
(showChatTooltip ? (React.createElement(TooltipHover, { className: `${prefix}--bmrg-side-nav__tooltip`, content: tooltipMessage, direction: "right" },
|
|
130
151
|
React.createElement("span", null, assistantSideNavLink))) : (assistantSideNavLink)),
|
|
152
|
+
createSideNavLink,
|
|
153
|
+
isCreateOpen && React.createElement(ComposedModal, { "aria-label": "Feedback", open: isCreateOpen, className: `${prefix}--bmrg-feedback-container ${prefix}--bmrg-header-modal`, onClose: setIsCreateOpen(false), onKeyDown: (e) => e.stopPropagation() },
|
|
154
|
+
React.createElement(ModalHeader, { title: "Choose your Method to Create:", closeModal: setIsCreateOpen(!isCreateOpen) }),
|
|
155
|
+
React.createElement(ModalBody, null,
|
|
156
|
+
React.createElement("div", null,
|
|
157
|
+
React.createElement("a", { href: "www.google.com" },
|
|
158
|
+
React.createElement("p", null, "Create an Agent"),
|
|
159
|
+
React.createElement("span", null, "Simple single agent configuration leveraging tools, via chat and general field inputs")),
|
|
160
|
+
React.createElement("a", { href: "www.youtube.com" },
|
|
161
|
+
React.createElement("p", null, "Create an Agentic App/ Workflow"),
|
|
162
|
+
React.createElement("span", null, "Advanced orchestration of multiple agents into workflows with configurable frameworks"))))),
|
|
131
163
|
!isPartnerUser && joinCreateTrigger ? (React.createElement(SideNavLink, { "data-testid": "sidenav-create-join-trigger", renderIcon: AddAlt, onClick: (e) => {
|
|
132
164
|
joinCreateTrigger(e);
|
|
133
165
|
handleCreateJoinClick();
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import { Theme, Header as Header$1, SkipToContent, HeaderName, HeaderNavigation, HeaderMenuItem, HeaderGlobalBar, HeaderPanel, HeaderMenuButton, SideNav, SideNavItems, SideNavLink } from '@carbon/react';
|
|
2
|
+
import { Theme, Header as Header$1, SkipToContent, HeaderName, HeaderNavigation, HeaderMenuItem, HeaderGlobalBar, Dropdown, HeaderPanel, HeaderMenuButton, SideNav, SideNavItems, SideNavLink } from '@carbon/react';
|
|
3
3
|
import { Wikis, Checkmark, Collaborate, NotificationNew, Notification, Help, UserAvatar, Close, Switcher, OpenPanelFilledRight } from '@carbon/react/icons';
|
|
4
4
|
import HeaderAppSwitcher from './HeaderAppSwitcher.js';
|
|
5
5
|
import HeaderMenu from './HeaderMenu.js';
|
|
@@ -52,8 +52,6 @@ const headerButtonClassNames = "cds--btn--icon-only cds--header__action cds--btn
|
|
|
52
52
|
const instanceCheckMarkContainerClass = "instance-checkmark-style-container";
|
|
53
53
|
function Header(props) {
|
|
54
54
|
const { productName, baseEnvUrl, baseServicesUrl, carbonTheme = "g10", className, navLinks, platform, prefixName = "", rightPanel, skipToContentProps, templateMeteringEvent, triggerEvent, userTeams, } = props;
|
|
55
|
-
console.log("userTeams", userTeams);
|
|
56
|
-
console.log("props.userTeams", props.userTeams);
|
|
57
55
|
return (React.createElement(React.Fragment, null,
|
|
58
56
|
React.createElement(Theme, { theme: carbonTheme },
|
|
59
57
|
React.createElement(Header$1, { "aria-label": "App navigation header", className: className },
|
|
@@ -93,21 +91,12 @@ function InstanceSwitcherMenu(props) {
|
|
|
93
91
|
: null)) : null));
|
|
94
92
|
}
|
|
95
93
|
function DefaultTeamsFlowMenu(props) {
|
|
96
|
-
const currentURL = window?.location?.href;
|
|
97
94
|
const { isOpen, toggleActive, ref } = useHeaderMenu(MenuButtonId.defaultTeamsFlowMenu);
|
|
98
95
|
// if (!props.enabled) {
|
|
99
96
|
// return null;
|
|
100
97
|
// }
|
|
101
98
|
return (React.createElement("div", { className: `${prefix}--bmrg-header-instance-switcher`, style: { position: "relative" }, ref: ref },
|
|
102
|
-
React.createElement(
|
|
103
|
-
isOpen ? (React.createElement(HeaderMenu, { "aria-labelledby": MenuButtonId.defaultTeamsFlowMenu, id: MenuListId.defaultTeamsFlowMenu }, Array.isArray(props.menuItems)
|
|
104
|
-
? props.menuItems.map((item) => (React.createElement(HeaderMenuItem, { "aria-label": `Default Teams for ${item.name}`, "data-testid": "header-menu-default-teams-flow", href: item.url, key: item.name, target: "_self", rel: "noopener noreferrer" },
|
|
105
|
-
React.createElement("div", { className: instanceCheckMarkContainerClass },
|
|
106
|
-
React.createElement("span", null, item.name),
|
|
107
|
-
item.url && currentURL?.includes(item.url) ? (React.createElement("span", null,
|
|
108
|
-
React.createElement(Checkmark, null),
|
|
109
|
-
" ")) : ("")))))
|
|
110
|
-
: null)) : null));
|
|
99
|
+
React.createElement(Dropdown, { style: { width: "10rem", marginBottom: "1rem" }, label: "", title: "Dropdown", items: props.menuItems, itemToString: (item) => item ? item.name : " " })));
|
|
111
100
|
}
|
|
112
101
|
function RequestsMenu(props) {
|
|
113
102
|
const { isOpen, toggleActive, ref } = useHeaderMenu(MenuButtonId.Requests);
|
package/package.json
CHANGED