From 409daa7c7ff75ee737c2eaebc91bf07f42b6d772 Mon Sep 17 00:00:00 2001
From: Vivek Jain <147403156+vivek-p44@users.noreply.github.com>
Date: Wed, 29 Nov 2023 08:32:40 +0530
Subject: [PATCH] fix: made changes to add isSelected prop to menuGroup (#514)
* fix(MI-19): made changes to add highlight on menu group when it is not expanded
* fix(MI-19): fixed linting
* fix(MI-19): added changesety
---
.changeset/gold-spies-retire.md | 6 ++++++
packages/react/src/components/MenuGroup/MenuGroup.tsx | 2 ++
packages/react/src/components/MenuGroup/MenuGroup.types.ts | 4 ++++
.../SideNavigationMenuGroup/SideNavigationMenuGroup.tsx | 3 ++-
4 files changed, 14 insertions(+), 1 deletion(-)
create mode 100644 .changeset/gold-spies-retire.md
diff --git a/.changeset/gold-spies-retire.md b/.changeset/gold-spies-retire.md
new file mode 100644
index 00000000..c259fbcf
--- /dev/null
+++ b/.changeset/gold-spies-retire.md
@@ -0,0 +1,6 @@
+---
+'@project44-manifest/react': patch
+---
+
+added isSelected prop to menu group to highlight it when it is not expanded and one of it's child is
+selected
diff --git a/packages/react/src/components/MenuGroup/MenuGroup.tsx b/packages/react/src/components/MenuGroup/MenuGroup.tsx
index 60350a33..d4ef2d46 100644
--- a/packages/react/src/components/MenuGroup/MenuGroup.tsx
+++ b/packages/react/src/components/MenuGroup/MenuGroup.tsx
@@ -23,6 +23,7 @@ export const MenuGroup = React.forwardRef((props, forwardedRef) => {
labelProps,
onExpandedChange = noop,
startIcon,
+ isSelected = false,
...other
} = props;
@@ -43,6 +44,7 @@ export const MenuGroup = React.forwardRef((props, forwardedRef) => {
}
+ isSelected={isSelected && !isExpanded} // Need to highlight menu group only if it not expanded
label={label}
labelProps={labelProps}
startIcon={startIcon}
diff --git a/packages/react/src/components/MenuGroup/MenuGroup.types.ts b/packages/react/src/components/MenuGroup/MenuGroup.types.ts
index 6a5a4e02..654db58e 100644
--- a/packages/react/src/components/MenuGroup/MenuGroup.types.ts
+++ b/packages/react/src/components/MenuGroup/MenuGroup.types.ts
@@ -42,4 +42,8 @@ export interface MenuGroupProps {
* Icon added before the button text.
*/
startIcon?: React.ReactElement;
+ /**
+ * Adds a highlight style when a submenu is selected and menu group is not in expanded mode.
+ */
+ isSelected?: boolean;
}
diff --git a/packages/react/src/components/SideNavigationMenuGroup/SideNavigationMenuGroup.tsx b/packages/react/src/components/SideNavigationMenuGroup/SideNavigationMenuGroup.tsx
index 6ef036e1..59c0db3e 100644
--- a/packages/react/src/components/SideNavigationMenuGroup/SideNavigationMenuGroup.tsx
+++ b/packages/react/src/components/SideNavigationMenuGroup/SideNavigationMenuGroup.tsx
@@ -9,7 +9,7 @@ import type {
} from './SideNavigationMenuGroup.types';
export const SideNavigationMenuGroup = React.forwardRef((props, forwardedRef) => {
- const { className: classNameProp, isExpanded: isExpandedProp, ...other } = props;
+ const { className: classNameProp, isExpanded: isExpandedProp, isSelected, ...other } = props;
const { isOpen } = useNavigation();
@@ -22,6 +22,7 @@ export const SideNavigationMenuGroup = React.forwardRef((props, forwardedRef) =>
className={className}
isExpanded={!isOpen ? false : undefined}
isOpen={isOpen}
+ isSelected={isSelected}
/>
);
}) as ForwardRefComponent;