UNPKG

react-activity-feed

Version:

React components to create activity and notification feeds

25 lines (20 loc) 724 B
import { useEffect } from 'react'; export const useOnClickOutside = ( ref: React.RefObject<HTMLElement>, handler: (event: MouseEvent | TouchEvent) => void, registerListeners = true, ) => { useEffect(() => { if (!registerListeners) return; const eventListener = (event: MouseEvent | TouchEvent) => { if (ref.current?.contains(event.target as Node)) return; handler(event); }; document.addEventListener('mousedown', eventListener); document.addEventListener('touchstart', eventListener); return () => { document.removeEventListener('mousedown', eventListener); document.removeEventListener('touchstart', eventListener); }; }, [handler, registerListeners]); };