UNPKG

storybook-react-geekshubs

Version:

Creation and curation of hight quality react components.

1 lines 2.05 kB
"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.default=void 0;var _react=require("react");var on=function on(obj){for(var _len=arguments.length,args=new Array(_len>1?_len-1:0),_key=1;_key<_len;_key++){args[_key-1]=arguments[_key]}return obj.addEventListener.apply(obj,args)};var off=function off(obj){for(var _len2=arguments.length,args=new Array(_len2>1?_len2-1:0),_key2=1;_key2<_len2;_key2++){args[_key2-1]=arguments[_key2]}return obj.removeEventListener.apply(obj,args)};var defaultEvents=["mousedown","touchstart"];var useClickAway=function useClickAway(ref,onClickAway){var events=arguments.length>2&&arguments[2]!==undefined?arguments[2]:defaultEvents;var savedCallback=(0,_react.useRef)(onClickAway);(0,_react.useEffect)(function(){savedCallback.current=onClickAway},[onClickAway]);(0,_react.useEffect)(function(){var handler=function handler(event){var el=ref.current;el&&!el.contains(event.target)&&savedCallback.current(event)};var _iteratorNormalCompletion=true;var _didIteratorError=false;var _iteratorError=undefined;try{for(var _iterator=events[Symbol.iterator](),_step;!(_iteratorNormalCompletion=(_step=_iterator.next()).done);_iteratorNormalCompletion=true){var eventName=_step.value;on(document,eventName,handler)}}catch(err){_didIteratorError=true;_iteratorError=err}finally{try{if(!_iteratorNormalCompletion&&_iterator.return!=null){_iterator.return()}}finally{if(_didIteratorError){throw _iteratorError}}}return function(){var _iteratorNormalCompletion2=true;var _didIteratorError2=false;var _iteratorError2=undefined;try{for(var _iterator2=events[Symbol.iterator](),_step2;!(_iteratorNormalCompletion2=(_step2=_iterator2.next()).done);_iteratorNormalCompletion2=true){var eventName=_step2.value;off(document,eventName,handler)}}catch(err){_didIteratorError2=true;_iteratorError2=err}finally{try{if(!_iteratorNormalCompletion2&&_iterator2.return!=null){_iterator2.return()}}finally{if(_didIteratorError2){throw _iteratorError2}}}}},[events,ref])};var _default=useClickAway;exports.default=_default;