Proyectos de Subversion LeadersLinked - SPA

Rev

Rev 2775 | Autoría | Comparar con el anterior | Ultima modificación | Ver Log |

import { useEffect, useRef } from 'react';

export function useOutsideClick(callback = () => {}) {
  const elementRef = useRef();

  useEffect(() => {
    const handleClickOutside = (event) => {
      if (!elementRef?.current) return;
      if (!elementRef.current?.contains(event.target)) callback();
    };

    document.addEventListener('mousedown', handleClickOutside);
    return () => {
      document.removeEventListener('mousedown', handleClickOutside);
    };
  }, [elementRef]);

  return [elementRef];
}