Proyectos de Subversion LeadersLinked - SPA

Rev

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

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