Proyectos de Subversion LeadersLinked - SPA

Rev

Rev 748 | Rev 2775 | Ir a la última revisión | Mostrar el archivo completo | | | Autoría | Ultima modificación | Ver Log |

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