UNPKG

storybook-react-geekshubs

Version:

Creation and curation of hight quality react components.

1 lines 4.2 kB
"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.default=exports.useStateWithCallback=exports.useScrollBottom=void 0;var _react=require("react");function _slicedToArray(arr,i){return _arrayWithHoles(arr)||_iterableToArrayLimit(arr,i)||_nonIterableRest()}function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}function _iterableToArrayLimit(arr,i){if(!(Symbol.iterator in Object(arr)||Object.prototype.toString.call(arr)==="[object Arguments]")){return}var _arr=[];var _n=true;var _d=false;var _e=undefined;try{for(var _i=arr[Symbol.iterator](),_s;!(_n=(_s=_i.next()).done);_n=true){_arr.push(_s.value);if(i&&_arr.length===i)break}}catch(err){_d=true;_e=err}finally{try{if(!_n&&_i["return"]!=null)_i["return"]()}finally{if(_d)throw _e}}return _arr}function _arrayWithHoles(arr){if(Array.isArray(arr))return arr}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 useScrollBottom=function useScrollBottom(){var _useState=(0,_react.useState)(false),_useState2=_slicedToArray(_useState,2),isBottom=_useState2[0],setIsBottom=_useState2[1];var scrollRef=(0,_react.useRef)(null);var onScroll=function onScroll(){if(scrollRef.current){setIsBottom(scrollRef.current.scrollTop>=scrollRef.current.scrollHeight-scrollRef.current.clientHeight)}};(0,_react.useEffect)(function(){if(scrollRef.current){scrollRef.current.addEventListener("scroll",onScroll);return function(){if(scrollRef&&scrollRef.current){scrollRef.current.removeEventListener("scroll",onScroll)}}}},[scrollRef.current]);return[isBottom,scrollRef]};exports.useScrollBottom=useScrollBottom;var useStateWithCallback=function useStateWithCallback(initialState){var defaultCb=arguments.length>1&&arguments[1]!==undefined?arguments[1]:function(){};var _useState3=(0,_react.useState)([initialState,defaultCb]),_useState4=_slicedToArray(_useState3,2),_useState4$=_slicedToArray(_useState4[0],2),state=_useState4$[0],callback=_useState4$[1],set=_useState4[1];var setState=function setState(update,cb){if(typeof update=="function"){set(function(_ref){var _ref2=_slicedToArray(_ref,1),s=_ref2[0];return[update(s),cb]})}else{set([update,cb])}};(0,_react.useEffect)(function(){return callback(state)},[state,defaultCb]);return[state,setState]};exports.useStateWithCallback=useStateWithCallback;var _default=useStateWithCallback;exports.default=_default;