@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("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 }, "dsdsdds"),
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, Home, AddAlt, UserMultiple, User, Locked, Unlocked, ChevronRight, GroupAccount } from '@carbon/react/icons';
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("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 }, "dsdsdds"),
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
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@boomerang-io/carbon-addons-boomerang-react",
3
3
  "description": "Carbon Addons for Boomerang apps",
4
- "version": "4.6.9-beta.5",
4
+ "version": "4.6.9-beta.50",
5
5
  "author": {
6
6
  "name": "Tim Bula",
7
7
  "email": "timrbula@gmail.com"