Proyectos de Subversion LeadersLinked - SPA

Rev

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]
}