(root)/app/hooks/useOutsideClick.js – Rev 3719
Rev 2775 |
|
Comparar con el anterior |
Ultima modificación |
Ver Log
|
Rev |
Autor |
Línea Nro. |
Línea |
3719 |
stevensc |
1 |
import { useEffect, useRef } from 'react';
|
|
|
2 |
|
|
|
3 |
export function useOutsideClick(callback = () => {}) {
|
|
|
4 |
const elementRef = useRef();
|
|
|
5 |
|
|
|
6 |
useEffect(() => {
|
|
|
7 |
const handleClickOutside = (event) => {
|
|
|
8 |
if (!elementRef?.current) return;
|
|
|
9 |
if (!elementRef.current?.contains(event.target)) callback();
|
|
|
10 |
};
|
|
|
11 |
|
|
|
12 |
document.addEventListener('mousedown', handleClickOutside);
|
|
|
13 |
return () => {
|
|
|
14 |
document.removeEventListener('mousedown', handleClickOutside);
|
|
|
15 |
};
|
|
|
16 |
}, [elementRef]);
|
|
|
17 |
|
|
|
18 |
return [elementRef];
|
|
|
19 |
}
|