diff --git a/packages/pluggableWidgets/popup-menu-web/CHANGELOG.md b/packages/pluggableWidgets/popup-menu-web/CHANGELOG.md index fdc8e7cc33..897959458e 100644 --- a/packages/pluggableWidgets/popup-menu-web/CHANGELOG.md +++ b/packages/pluggableWidgets/popup-menu-web/CHANGELOG.md @@ -6,6 +6,11 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), ## [Unreleased] +### Fixed + +- We fixed an issue where the "Close on" option for the Hover trigger was not working. The menu will now correctly stay open until you click outside when "Click outside" is selected, or close when you hover away when "Hover leave" is selected. +- We fixed an issue where nested popup menus (a popup menu inside another popup menu's content) would close unexpectedly when hovering between parent and child menus. + ## [4.2.0] - 2026-05-04 ### Added diff --git a/packages/pluggableWidgets/popup-menu-web/src/__tests__/MenuWithContext.tsx b/packages/pluggableWidgets/popup-menu-web/src/__tests__/MenuWithContext.tsx index 2e56ff6f5d..cf4aa305d5 100644 --- a/packages/pluggableWidgets/popup-menu-web/src/__tests__/MenuWithContext.tsx +++ b/packages/pluggableWidgets/popup-menu-web/src/__tests__/MenuWithContext.tsx @@ -9,7 +9,8 @@ export function MenuWithContext(props: MenuProps): ReactElement { onOpenChange: jest.fn(), placement: props.position, trigger: props.trigger, - clippingStrategy: props.clippingStrategy + clippingStrategy: props.clippingStrategy, + hoverCloseOn: props.hoverCloseOn }); return ( diff --git a/packages/pluggableWidgets/popup-menu-web/src/__tests__/PopupTriggerWithContext.tsx b/packages/pluggableWidgets/popup-menu-web/src/__tests__/PopupTriggerWithContext.tsx index 1a63c0a33f..10ec4065a5 100644 --- a/packages/pluggableWidgets/popup-menu-web/src/__tests__/PopupTriggerWithContext.tsx +++ b/packages/pluggableWidgets/popup-menu-web/src/__tests__/PopupTriggerWithContext.tsx @@ -4,7 +4,14 @@ import { PopupTrigger } from "../components/PopupTrigger"; import { usePopup } from "../hooks/usePopup"; export function PopupTriggerWithContext(props: PropsWithChildren): ReactElement { - const popup = usePopup({ open: true, onOpenChange: jest.fn(), trigger: "onclick", clippingStrategy: "absolute" }); + const popup = usePopup({ + open: true, + onOpenChange: jest.fn(), + trigger: "onclick", + clippingStrategy: "absolute", + placement: "top", + hoverCloseOn: "onClickOutside" + }); return ( diff --git a/packages/pluggableWidgets/popup-menu-web/src/__tests__/__snapshots__/Menu.spec.tsx.snap b/packages/pluggableWidgets/popup-menu-web/src/__tests__/__snapshots__/Menu.spec.tsx.snap index cecd9fde46..b64ac23785 100644 --- a/packages/pluggableWidgets/popup-menu-web/src/__tests__/__snapshots__/Menu.spec.tsx.snap +++ b/packages/pluggableWidgets/popup-menu-web/src/__tests__/__snapshots__/Menu.spec.tsx.snap @@ -18,7 +18,7 @@ exports[`Menu renders menu 1`] = ` class="popupmenu-menu" data-floating-ui-focusable="" data-overlay-content="true" - id=":r0:" + id=":r1:" role="dialog" style="position: absolute; left: 0px; top: 0px; transform: translate(0px, 0px);" tabindex="0" diff --git a/packages/pluggableWidgets/popup-menu-web/src/__tests__/__snapshots__/PopupMenu.spec.tsx.snap b/packages/pluggableWidgets/popup-menu-web/src/__tests__/__snapshots__/PopupMenu.spec.tsx.snap index a274e35331..0507a423a1 100644 --- a/packages/pluggableWidgets/popup-menu-web/src/__tests__/__snapshots__/PopupMenu.spec.tsx.snap +++ b/packages/pluggableWidgets/popup-menu-web/src/__tests__/__snapshots__/PopupMenu.spec.tsx.snap @@ -6,7 +6,7 @@ exports[`Popup Menu renders popup menu 1`] = ` class="popupmenu mx-popup-menu" >