mirror of
				https://gitlab.nic.cz/turris/reforis/foris-js.git
				synced 2025-11-03 23:00:31 +01:00 
			
		
		
		
	Detect clicks outside element with a hook
This commit is contained in:
		@@ -18,3 +18,19 @@ export function useConditionalTimeout({ callback, timeout = 125 }, ...callbackAr
 | 
			
		||||
    }, [condition, callback, timeout, callbackArgs]);
 | 
			
		||||
    return setCondition;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/** Execute callback when user clicks outside specified element. */
 | 
			
		||||
export function useClickOutside(element, callback) {
 | 
			
		||||
    function handleClickOutside(event) {
 | 
			
		||||
        if (element.current && !element.current.contains(event.target)) {
 | 
			
		||||
            callback(event);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    useEffect(() => {
 | 
			
		||||
        document.addEventListener("mousedown", handleClickOutside);
 | 
			
		||||
        return () => {
 | 
			
		||||
            document.removeEventListener("mousedown", handleClickOutside);
 | 
			
		||||
        };
 | 
			
		||||
    });
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user