UNPKG

@seasketch/geoprocessing

Version:

Geoprocessing and reporting framework for SeaSketch 2.0

23 lines 825 B
import { useEffect, useRef } from "react"; /** * Creates and returns reference to a div element, which the caller can * populate. `callback` is invoked if a click occurs outside of the reference * Useful for dropdown implementation */ export default function useClickOutside(callback) { const ref = useRef(null); useEffect(() => { const handleClickOutside = (event) => { if (ref.current && !ref.current.contains(event.target)) { Reflect.apply(callback, null, [false]); } }; document.addEventListener("click", handleClickOutside, true); return () => { document.removeEventListener("click", handleClickOutside, true); }; }, [callback]); return { ref }; } //# sourceMappingURL=useClickOutside.js.map