@im-ian/react-survey
Version:
2018~2019년에 제작했던 React 설문 모듈입니다. 아카이브 용도로 업로드 되었습니다.
17 lines (14 loc) • 475 B
text/typescript
import { RefObject, useEffect } from 'react';
export const useClickAway = (target: RefObject<HTMLDivElement>, callback: () => void): void => {
const handleClickAway = (event: MouseEvent) => {
if (target.current && !target.current.contains(event.target as Node)) {
callback();
}
};
useEffect(() => {
document.addEventListener('click', handleClickAway);
return () => {
document.removeEventListener('click', handleClickAway);
};
});
};