Skip to content

Commit f2dfdea

Browse files
authored
v5.2.2 (#611)
* Add onHoverChange and check initialOpen * v5.2.2
1 parent c278760 commit f2dfdea

2 files changed

Lines changed: 24 additions & 4 deletions

File tree

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@netdata/netdata-ui",
3-
"version": "5.2.1",
3+
"version": "5.2.2",
44
"description": "netdata UI kit",
55
"main": "dist/index.js",
66
"module": "dist/es6/index.js",

src/components/drops/popover/index.js

Lines changed: 23 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import React, { useCallback, Fragment, useRef } from "react"
1+
import React, { useCallback, Fragment, useRef, useEffect } from "react"
22
import Drop from "@/components/drops/drop"
33
import useForwardRef from "@/hooks/useForwardRef"
44
import useToggle from "@/hooks/useToggle"
@@ -7,6 +7,7 @@ import useDescribedId from "@/components/drops/mixins/useDescribedId"
77
import dropAlignMap from "@/components/drops/mixins/dropAlignMap"
88
import Container from "@/components/drops/container"
99

10+
const noop = () => {}
1011
const getContent = content => (typeof content === "function" ? content() : content)
1112

1213
const Popover = ({
@@ -19,6 +20,7 @@ const Popover = ({
1920
children,
2021
zIndex = 70,
2122
ref: parentRef,
23+
onHoverChange = noop,
2224
...rest
2325
}) => {
2426
const id = useDescribedId(rest["aria-describedby"])
@@ -33,16 +35,34 @@ const Popover = ({
3335

3436
const [ref, setRef] = useForwardRef(parentRef)
3537

38+
const onTargetElementMouseOver = useCallback(() => {
39+
open()
40+
onHoverChange(true)
41+
}, [open, onHoverChange])
42+
43+
const onTargetElementMouseLeave = useCallback(() => {
44+
closeDrop()
45+
onHoverChange(false)
46+
}, [closeDrop, onHoverChange])
47+
3648
const targetElement = useClonedChildren(children, setRef, {
3749
isOpen,
38-
onMouseOver: open,
39-
onMouseLeave: closeDrop,
50+
onMouseOver: onTargetElementMouseOver,
51+
onMouseLeave: onTargetElementMouseLeave,
4052
onFocus: open,
4153
onBlur: closeDrop,
4254
...(isOpen && { "aria-describedby": id }),
4355
...rest,
4456
})
4557

58+
useEffect(() => {
59+
if (initialOpen) {
60+
open()
61+
} else {
62+
close()
63+
}
64+
}, [initialOpen, open, close])
65+
4666
const onMouseEnter = useCallback(() => {
4767
dropHoverRef.current = true
4868
}, [])

0 commit comments

Comments
 (0)