Proyectos de Subversion LeadersLinked - SPA

Rev

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

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