From 4604df8db5d512f1a2a7e0ac5178ded99bc50483 Mon Sep 17 00:00:00 2001 From: oscarkilhed Date: Fri, 12 Dec 2025 11:06:15 +0100 Subject: [PATCH] massively simplify --- packages/grafana-ui/src/components/Dropdown/Dropdown.tsx | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/packages/grafana-ui/src/components/Dropdown/Dropdown.tsx b/packages/grafana-ui/src/components/Dropdown/Dropdown.tsx index 7251d2ed85c..6495f3a5265 100644 --- a/packages/grafana-ui/src/components/Dropdown/Dropdown.tsx +++ b/packages/grafana-ui/src/components/Dropdown/Dropdown.tsx @@ -18,7 +18,7 @@ import { useStyles2 } from '../../themes/ThemeContext'; import { getPositioningMiddleware } from '../../utils/floating'; import { renderOrCallToRender } from '../../utils/reactUtils'; import { getPlacement } from '../../utils/tooltipUtils'; -import { Portal } from '../Portal/Portal'; +import { getPortalContainer, Portal } from '../Portal/Portal'; import { TooltipPlacement } from '../Tooltip/types'; export interface Props { @@ -67,7 +67,11 @@ export const Dropdown = React.memo(({ children, overlay, placement, offset, root }); const click = useClick(context); - const dismiss = useDismiss(context); + const dismiss = useDismiss(context, { + outsidePress(event) { + return event.target instanceof Element ? !getPortalContainer().contains(event.target) : false; + }, + }); const { getReferenceProps, getFloatingProps } = useInteractions([dismiss, click]); const animationDuration = 150;