diff --git a/packages/casts-menu/src/components/hooks/use-menu-item.ts b/packages/casts-menu/src/components/hooks/use-menu-item.ts index 3c6d2957b..4439325a8 100644 --- a/packages/casts-menu/src/components/hooks/use-menu-item.ts +++ b/packages/casts-menu/src/components/hooks/use-menu-item.ts @@ -46,7 +46,7 @@ export const useMenuItem = (props: UseMenuItemProps) => { onClick?.({ e: event }); if ( - subMenuContext.hideAfterClick && + (props.hideAfterClick ?? subMenuContext.hideAfterClick) && subMenuContext.expandType === 'popup' ) { subMenuContext.onOpenChange?.(false); diff --git a/packages/casts-menu/src/components/sub-menu.tsx b/packages/casts-menu/src/components/sub-menu.tsx index be3910de8..64552447f 100644 --- a/packages/casts-menu/src/components/sub-menu.tsx +++ b/packages/casts-menu/src/components/sub-menu.tsx @@ -101,6 +101,7 @@ export const SubMenu = forwardRef( focusable={focusable} className={innerClasses} style={innerStyles} + hideAfterClick={false} {...innerEvents} > {label} diff --git a/packages/casts-menu/src/components/types/menu-item.ts b/packages/casts-menu/src/components/types/menu-item.ts index 63b019193..84b1e22d1 100644 --- a/packages/casts-menu/src/components/types/menu-item.ts +++ b/packages/casts-menu/src/components/types/menu-item.ts @@ -18,6 +18,8 @@ export type UseMenuItemProps = BaseComponentProps & focusable?: boolean; label?: ReactNode; + + hideAfterClick?: boolean; }; export type MenuItemProps = UseMenuItemProps & {