UNPKG

@geist-ui/react

Version:

Modern and minimalist React UI library.

27 lines (21 loc) 700 B
'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); var react = require('react'); var useClickAway = function useClickAway(ref, handler) { var handlerRef = react.useRef(handler); react.useEffect(function () { handlerRef.current = handler; }, [handlerRef]); react.useEffect(function () { var callback = function callback(event) { var el = ref.current; if (!event || !el || el.contains(event.target)) return; handlerRef.current(event); }; document.addEventListener('click', callback); return function () { return document.removeEventListener('click', callback); }; }, [ref]); }; exports["default"] = useClickAway;