From 28433af3a4c8c68ff625896a1b4e354fb59ad93d Mon Sep 17 00:00:00 2001 From: John Kapantzakis Date: Tue, 3 Feb 2026 16:26:53 +0200 Subject: [PATCH 1/2] Add onHoverChange and check initialOpen --- src/components/drops/popover/index.js | 26 +++++++++++++++++++++++--- 1 file changed, 23 insertions(+), 3 deletions(-) diff --git a/src/components/drops/popover/index.js b/src/components/drops/popover/index.js index 64b3515af..15ef059b2 100644 --- a/src/components/drops/popover/index.js +++ b/src/components/drops/popover/index.js @@ -1,4 +1,4 @@ -import React, { useCallback, Fragment, useRef } from "react" +import React, { useCallback, Fragment, useRef, useEffect } from "react" import Drop from "@/components/drops/drop" import useForwardRef from "@/hooks/useForwardRef" import useToggle from "@/hooks/useToggle" @@ -7,6 +7,7 @@ import useDescribedId from "@/components/drops/mixins/useDescribedId" import dropAlignMap from "@/components/drops/mixins/dropAlignMap" import Container from "@/components/drops/container" +const noop = () => {} const getContent = content => (typeof content === "function" ? content() : content) const Popover = ({ @@ -19,6 +20,7 @@ const Popover = ({ children, zIndex = 70, ref: parentRef, + onHoverChange = noop, ...rest }) => { const id = useDescribedId(rest["aria-describedby"]) @@ -33,16 +35,34 @@ const Popover = ({ const [ref, setRef] = useForwardRef(parentRef) + const onTargetElementMouseOver = useCallback(() => { + open() + onHoverChange(true) + }, [open, onHoverChange]) + + const onTargetElementMouseLeave = useCallback(() => { + closeDrop() + onHoverChange(false) + }, [closeDrop, onHoverChange]) + const targetElement = useClonedChildren(children, setRef, { isOpen, - onMouseOver: open, - onMouseLeave: closeDrop, + onMouseOver: onTargetElementMouseOver, + onMouseLeave: onTargetElementMouseLeave, onFocus: open, onBlur: closeDrop, ...(isOpen && { "aria-describedby": id }), ...rest, }) + useEffect(() => { + if (initialOpen) { + open() + } else { + close() + } + }, [initialOpen, open, close]) + const onMouseEnter = useCallback(() => { dropHoverRef.current = true }, []) From f4f91b7c17eb49164659f9586fa7b4c43941feda Mon Sep 17 00:00:00 2001 From: John Kapantzakis Date: Tue, 3 Feb 2026 16:31:34 +0200 Subject: [PATCH 2/2] v5.2.2 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 2548dcf40..d0297bd67 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@netdata/netdata-ui", - "version": "5.2.1", + "version": "5.2.2", "description": "netdata UI kit", "main": "dist/index.js", "module": "dist/es6/index.js",