cra-template-sdw
Version:
The base SDW template for Create React App.
22 lines (16 loc) • 531 B
text/typescript
import { useEffect, useRef } from 'react';
export const useClickOutside = (handleClickOutside?: any) => {
const ref = useRef<any>(null);
useEffect(()=> {
const handleClick = ({ target }: any) => {
if (ref.current && !ref.current.contains(target)) {
handleClickOutside && handleClickOutside();
}
};
document.addEventListener('click', handleClick, false);
return () => {
document.removeEventListener('click', handleClick, false);
};
}, [handleClickOutside]);
return ref;
};