UNPKG

@i-novus/ui-core

Version:

Базовые UI компоненты

19 lines (18 loc) 678 B
import { useEffect } from 'react'; export const useClickOutside = (refList, callback) => { useEffect(() => { const clickHandler = (event) => { if (!refList.length || refList.some(item => item.current?.contains(event.target))) { return; } callback?.(event); }; document.addEventListener('mousedown', clickHandler); document.addEventListener('touchstart', clickHandler); return () => { document.removeEventListener('mousedown', clickHandler); document.removeEventListener('touchstart', clickHandler); }; }, [refList, callback]); };