Proyectos de Subversion LeadersLinked - SPA

Rev

Rev 748 | Rev 2775 | Ir a la última revisión | | Comparar con el anterior | Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
2774 stevensc 1
import { useEffect, useRef, useState } from 'react'
5 stevensc 2
 
2774 stevensc 3
export function useOutsideClick() {
4
  const [isClickOutside, setIsClickOutside] = useState(false)
5
  const elementRef = useRef()
6
 
5 stevensc 7
  useEffect(() => {
8
    const handleClickOutside = (event) => {
2774 stevensc 9
      if (!elementRef?.current) return
10
 
11
      elementRef.current?.contains(event.target)
12
        ? setIsClickOutside(false)
13
        : setIsClickOutside(true)
5 stevensc 14
    }
15
 
16
    document.addEventListener('mousedown', handleClickOutside)
17
    return () => {
18
      document.removeEventListener('mousedown', handleClickOutside)
19
    }
2774 stevensc 20
  }, [elementRef])
21
 
22
  return [elementRef, isClickOutside]
5 stevensc 23
}