Files
threshold/website/lib/hooks/use-hover.js
T

29 lines
713 B
JavaScript
Raw Normal View History

2020-10-09 16:26:32 -04:00
import { useRef, useState, useEffect } from 'react'
function useHover() {
const [value, setValue] = useState(false)
const ref = useRef(null)
const handleMouseOver = () => setValue(true)
const handleMouseOut = () => setValue(false)
useEffect(
() => {
const node = ref.current
if (node) {
node.addEventListener('mouseover', handleMouseOver)
node.addEventListener('mouseout', handleMouseOut)
return () => {
node.removeEventListener('mouseover', handleMouseOver)
node.removeEventListener('mouseout', handleMouseOut)
}
}
},
[ref.current] // Recall only if ref changes
)
return [ref, value]
}
export default useHover