Rev 748 | Rev 2775 | Ir a la última revisión | Autoría | Comparar con el anterior | Ultima modificación | Ver Log |
import { useEffect, useRef, useState } from 'react'
export function useOutsideClick() {
const [isClickOutside, setIsClickOutside] = useState(false)
const elementRef = useRef()
useEffect(() => {
const handleClickOutside = (event) => {
if (!elementRef?.current) return
elementRef.current?.contains(event.target)
? setIsClickOutside(false)
: setIsClickOutside(true)
}
document.addEventListener('mousedown', handleClickOutside)
return () => {
document.removeEventListener('mousedown', handleClickOutside)
}
}, [elementRef])
return [elementRef, isClickOutside]
}