react-fast-hooks
Version:
A collection of custom React hooks
2 lines (1 loc) • 23.2 kB
JavaScript
import{useState as n,useEffect as e,useCallback as t,useRef as r}from"react";var o=function(){return"undefined"!=typeof window&&void 0!==window.document},i=function(n,e){var t=null;return function(){for(var r=this,o=[],i=0;i<arguments.length;i++)o[i]=arguments[i];t||(t=setTimeout((function(){n.apply(r,o),t=null}),e))}};var u="(prefers-color-scheme: dark)",c=function(){if(o()&&window.matchMedia&&window.matchMedia(u).matches)return"dark";return"light"},a=function(){var t=n((function(){return c()})),r=t[0],i=t[1];return e((function(){if(o()&&window.matchMedia){var n=window.matchMedia(u),e=function(){i(c())};return n.addEventListener("change",e),function(){n.removeEventListener("change",e)}}}),[]),r},l=function(){var t=n((function(){return!!o()&&navigator.onLine})),r=t[0],i=t[1];return e((function(){if(o()){var n=function(){return i(!0)},e=function(){return i(!1)};return window.addEventListener("online",n),window.addEventListener("offline",e),function(){window.removeEventListener("online",n),window.removeEventListener("offline",e)}}}),[]),r},s=function(){return s=Object.assign||function(n){for(var e,t=1,r=arguments.length;t<r;t++)for(var o in e=arguments[t])Object.prototype.hasOwnProperty.call(e,o)&&(n[o]=e[o]);return n},s.apply(this,arguments)};function d(n,e,t,r){return new(t||(t=Promise))((function(o,i){function u(n){try{a(r.next(n))}catch(n){i(n)}}function c(n){try{a(r.throw(n))}catch(n){i(n)}}function a(n){var e;n.done?o(n.value):(e=n.value,e instanceof t?e:new t((function(n){n(e)}))).then(u,c)}a((r=r.apply(n,e||[])).next())}))}function f(n,e){var t,r,o,i,u={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:c(0),throw:c(1),return:c(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function c(c){return function(a){return function(c){if(t)throw new TypeError("Generator is already executing.");for(;i&&(i=0,c[0]&&(u=0)),u;)try{if(t=1,r&&(o=2&c[0]?r.return:c[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,c[1])).done)return o;switch(r=0,o&&(c=[2&c[0],o.value]),c[0]){case 0:case 1:o=c;break;case 4:return u.label++,{value:c[1],done:!1};case 5:u.label++,r=c[1],c=[0];continue;case 7:c=u.ops.pop(),u.trys.pop();continue;default:if(!(o=u.trys,(o=o.length>0&&o[o.length-1])||6!==c[0]&&2!==c[0])){u=0;continue}if(3===c[0]&&(!o||c[1]>o[0]&&c[1]<o[3])){u.label=c[1];break}if(6===c[0]&&u.label<o[1]){u.label=o[1],o=c;break}if(o&&u.label<o[2]){u.label=o[2],u.ops.push(c);break}o[2]&&u.ops.pop(),u.trys.pop();continue}c=e.call(n,u)}catch(n){c=[6,n],r=0}finally{t=o=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}([c,a])}}}"function"==typeof SuppressedError&&SuppressedError;var v=function(){var e=n(!1),t=e[0],r=e[1];return{copy:function(n){return d(void 0,void 0,void 0,(function(){var e;return f(this,(function(t){switch(t.label){case 0:if(!o())return console.warn("Clipboard API is not available in SSR."),[2];t.label=1;case 1:return t.trys.push([1,3,,4]),[4,navigator.clipboard.writeText(n)];case 2:return t.sent(),r(!0),setTimeout((function(){return r(!1)}),2e3),[3,4];case 3:return e=t.sent(),console.error("Failed to copy text to clipboard:",e),r(!1),[3,4];case 4:return[2]}}))}))},isCopied:t}},h=function(){var t=n({accuracy:null,altitude:null,altitudeAccuracy:null,heading:null,latitude:null,longitude:null,speed:null,timestamp:Date.now(),error:null}),r=t[0],i=t[1];return e((function(){if(o()){var n,e=!0,t=function(n){e&&i({accuracy:n.coords.accuracy,altitude:n.coords.altitude,altitudeAccuracy:n.coords.altitudeAccuracy,heading:n.coords.heading,latitude:n.coords.latitude,longitude:n.coords.longitude,speed:n.coords.speed,timestamp:n.timestamp,error:null})},r=function(n){i({accuracy:null,altitude:null,altitudeAccuracy:null,heading:null,latitude:null,longitude:null,speed:null,timestamp:Date.now(),error:n})};return navigator.geolocation.getCurrentPosition(t,r),n=navigator.geolocation.watchPosition(t,r),function(){e=!1,navigator.geolocation.clearWatch(n)}}}),[]),r},w=function(n){var r=t((function(n){o()&&(document.title=n)}),[]);return e((function(){o()&&(document.title=n)}),[n]),{setTitle:r}},m=function(){var t=n({supported:!0,loading:!0,level:null,charging:null,chargingTime:null,dischargingTime:null}),r=t[0],i=t[1];return e((function(){if(o()){var n=navigator,e=null,t=function(){e&&i({supported:!0,loading:!1,level:e.level,charging:e.charging,chargingTime:e.chargingTime,dischargingTime:e.dischargingTime})};return n.getBattery().then((function(n){e=n,t(),n.addEventListener("levelchange",t),n.addEventListener("chargingchange",t),n.addEventListener("chargingtimechange",t),n.addEventListener("dischargingtimechange",t)})),function(){e&&(e.removeEventListener("levelchange",t),e.removeEventListener("chargingchange",t),e.removeEventListener("chargingtimechange",t),e.removeEventListener("dischargingtimechange",t))}}i((function(n){return s(s({},n),{supported:!1,loading:!1})}))}),[]),r},g=function(){return{width:o()?window.innerWidth:null,height:o()?window.innerHeight:null}},p=function(r){void 0===r&&(r=200);var u=n(g),c=u[0],a=u[1],l=t(i((function(){a(g())}),r),[r]);return e((function(){if(o())return window.addEventListener("resize",l),function(){window.removeEventListener("resize",l)}}),[l]),c},E=function(){return{x:o()?window.scrollX:null,y:o()?window.scrollY:null}},y=function(r){void 0===r&&(r=200);var u=n(E),c=u[0],a=u[1],l=t(i((function(){a(E())}),r),[r]);return e((function(){if(o())return window.addEventListener("scroll",l),function(){window.removeEventListener("scroll",l)}}),[l]),c},L=function(){return t((function(n){o()&&window.scrollTo({left:n.x,top:n.y,behavior:n.behavior||"auto"})}),[])},b=function(r,u){void 0===u&&(u=200);var c=n({x:0,y:0}),a=c[0],l=c[1],s=t(i((function(){if(o()&&r.current){var n=r.current,e=n.scrollLeft,t=n.scrollTop;l({x:e,y:t})}}),u),[r,u]);return e((function(){if(o()&&r.current){var n=r.current;return n.addEventListener("scroll",s),function(){n.removeEventListener("scroll",s)}}}),[r,s]),a},k=function(n){return t((function(e){o()&&n.current&&n.current.scrollTo({left:e.x,top:e.y,behavior:e.behavior||"auto"})}),[n])},S=function(n){return{focus:t((function(){o()&&n.current&&n.current.focus()}),[n]),blur:t((function(){o()&&n.current&&n.current.blur()}),[n])}},x=function(){var i=n(0),u=i[0],c=i[1],a=n(!1),l=a[0],s=a[1],d=r(null),f=t((function(){o()&&!l&&(s(!0),d.current=setInterval((function(){c((function(n){return n+1}))}),1e3))}),[l]),v=t((function(){o()&&l&&(s(!1),d.current&&(clearInterval(d.current),d.current=null))}),[l]),h=t((function(){o()&&(s(!1),c(0),d.current&&(clearInterval(d.current),d.current=null))}),[]);return e((function(){return function(){d.current&&clearInterval(d.current)}}),[]),{time:u,isRunning:l,start:f,stop:v,reset:h}},T=function(r){var i=n(r),u=i[0],c=i[1];return e((function(){if(o()){var n=document.querySelector("link[rel='icon']"),e=n||document.createElement("link");e.rel="icon",e.href=u,n||document.head.appendChild(e)}}),[u]),t((function(n){c(n)}),[])},X=function(t,r){void 0===r&&(r={});var i=n({loading:!0,error:null}),u=i[0],c=i[1];return e((function(){var n,e;if(o()){var i=document.createElement("script");i.src=t,i.async=null===(n=r.async)||void 0===n||n,i.defer=null!==(e=r.defer)&&void 0!==e&&e;var u=function(){c({loading:!1,error:null})},a=function(){c({loading:!1,error:new Error("Failed to load script: ".concat(t))})};return i.addEventListener("load",u),i.addEventListener("error",a),document.body.appendChild(i),function(){i.removeEventListener("load",u),i.removeEventListener("error",a),r.removeOnUnmount&&document.body.removeChild(i)}}}),[t]),u},Y=function(r){var i=n(!1),u=i[0],c=i[1],a=t((function(){c(!0)}),[]),l=t((function(){c(!1)}),[]);return e((function(){if(o()&&r.current){var n=r.current;return n.addEventListener("mouseenter",a),n.addEventListener("mouseleave",l),function(){n.removeEventListener("mouseenter",a),n.removeEventListener("mouseleave",l)}}}),[r,a,l]),u},M=function(t){var r=n((function(){return!(!o()||!window.matchMedia)&&window.matchMedia(t).matches})),i=r[0],u=r[1];return e((function(){if(o()&&window.matchMedia){var n=window.matchMedia(t),e=function(n){u(n.matches)};return n.addEventListener("change",e),function(){n.removeEventListener("change",e)}}}),[t]),i},O=function(e,t){var r=n((function(){if(!o())return t;try{var n=window.localStorage.getItem(e);return n?JSON.parse(n):t}catch(n){return console.warn('Error reading localStorage key "'.concat(e,'":'),n),t}})),i=r[0],u=r[1];return[i,function(n){try{var t=n instanceof Function?n(i):n;u(t),o()&&window.localStorage.setItem(e,JSON.stringify(t))}catch(n){console.warn('Error setting localStorage key "'.concat(e,'":'),n)}}]},C=function(e,t){var r=n((function(){if(!o())return t;try{var n=window.sessionStorage.getItem(e);return n?JSON.parse(n):t}catch(n){return console.warn('Error reading sessionStorage key "'.concat(e,'":'),n),t}})),i=r[0],u=r[1];return[i,function(n){try{var t=n instanceof Function?n(i):n;u(t),o()&&window.sessionStorage.setItem(e,JSON.stringify(t))}catch(n){console.warn('Error setting sessionStorage key "'.concat(e,'":'),n)}}]},I=function(){var t=window.matchMedia("(orientation: portrait)"),r=n(t.matches?"portrait":"landscape"),i=r[0],u=r[1];return e((function(){if(o()){var n=function(){t.matches?u("portrait"):u("landscape")};return t.addEventListener("change",n),function(){t.removeEventListener("change",n)}}}),[]),i},N=function(r,u){void 0===u&&(u=200);var c=n({width:null,height:null}),a=c[0],l=c[1],s=t((function(){if(o()&&r.current){var n=r.current,e=n.offsetWidth,t=n.offsetHeight;l({width:e,height:t})}}),[r]),d=t(i(s,u),[s,u]);return e((function(){if(o()&&r.current)return s(),window.addEventListener("resize",d),function(){window.removeEventListener("resize",d)}}),[r,d]),a},A=function(t){var r=n(!1),i=r[0],u=r[1],c=function(n){n.key===t&&u(!0)},a=function(n){n.key===t&&u(!1)};return e((function(){if(o())return window.addEventListener("keypress",c),window.addEventListener("keyup",a),function(){window.removeEventListener("keypress",c),window.removeEventListener("keyup",a)}}),[t]),i},D=function(t){var r=n(!1),i=r[0],u=r[1],c={},a=function(n){var e=n.key;c[e]=!0,s()},l=function(n){var e=n.key;c[e]=!1,s()},s=function(){var n=t.every((function(n){return c[n]}));u(n)};return e((function(){if(o())return window.addEventListener("keydown",a),window.addEventListener("keyup",l),function(){window.removeEventListener("keydown",a),window.removeEventListener("keyup",l)}}),[t]),i},F=function(n,r){var i=t((function(e){n.current&&!n.current.contains(e.target)&&r(e)}),[n,r]);e((function(){if(o())return document.addEventListener("click",i),function(){document.removeEventListener("click",i)}}),[i])},P=function(t,r){void 0===r&&(r={});var i=n(null),u=i[0],c=i[1];return e((function(){if(o()&&t.current&&window.IntersectionObserver){var n=new IntersectionObserver((function(n){var e=n[0];return c(e)}),r),e=t.current;return n.observe(e),function(){n.disconnect()}}}),[]),u},R=function(n,t,i){var u=r(null);e((function(){var e,r,c,a,l,s;if(o()&&n.current&&window.MutationObserver)return u.current=new MutationObserver(t),u.current.observe(n.current,{childList:null===(e=i.childList)||void 0===e||e,attributes:null===(r=i.attributes)||void 0===r||r,characterData:null!==(c=i.characterData)&&void 0!==c&&c,subtree:null!==(a=i.subtree)&&void 0!==a&&a,attributeOldValue:null!==(l=i.attributeOldValue)&&void 0!==l&&l,characterDataOldValue:null!==(s=i.characterDataOldValue)&&void 0!==s&&s,attributeFilter:i.attributeFilter}),function(){var n;null===(n=u.current)||void 0===n||n.disconnect()}}),[n,t,i])},V=function(n,t,i,u){var c=r();e((function(){c.current=t}),[t]),e((function(){var e=i&&i.current||window;if(o()&&e){var t=function(n){c.current&&c.current(n)};return e.addEventListener(n,t,u),function(){e.removeEventListener(n,t,u)}}}),[n,i,u])},z=function(){var t=n(!!o()&&document.hasFocus()),r=t[0],i=t[1];return e((function(){if(o()){var n=function(){return i(!0)},e=function(){return i(!1)};return window.addEventListener("focus",n),window.addEventListener("blur",e),function(){window.removeEventListener("focus",n),window.removeEventListener("blur",e)}}}),[]),r},B=function(i){var u=i.timeout,c=n(!1),a=c[0],l=c[1],s=r(),d=r(!1),f=t((function(){d.current&&(l(!1),d.current=!1),clearTimeout(s.current),s.current=window.setTimeout((function(){l(!0),d.current=!0}),u)}),[u]);return e((function(){if(o()){var n=["mousemove","mousedown","keydown","touchstart","scroll"];return n.forEach((function(n){return window.addEventListener(n,f)})),s.current=window.setTimeout((function(){l(!0),d.current=!0}),u),function(){n.forEach((function(n){return window.removeEventListener(n,f)})),clearTimeout(s.current)}}}),[f,u]),a},J=function(t){var r=n({x:0,y:0,elementX:0,elementY:0,pageX:0,pageY:0}),i=r[0],u=r[1];return e((function(){if(o()&&t.current){var n=function(n){var e=t.current;if(e){var r=e.getBoundingClientRect();u({x:n.clientX-r.left,y:n.clientY-r.top,elementX:n.clientX,elementY:n.clientY,pageX:n.pageX,pageY:n.pageY})}},e=t.current;return e.addEventListener("mousemove",n),function(){e.removeEventListener("mousemove",n)}}}),[t]),i},U=function(n,i){var u=i.threshold,c=void 0===u?500:u,a=i.onLongPress,l=i.onPress,s=i.onRelease,d=r(null),f=t((function(){l&&l(),d.current=setTimeout((function(){a&&a()}),c)}),[a,l,c]),v=t((function(){d.current&&clearTimeout(d.current),s&&s()}),[s]);e((function(){if(o()&&n.current){var e=n.current,t=f,r=v,i=f,u=v;return e.addEventListener("mousedown",t),e.addEventListener("mouseup",r),e.addEventListener("touchstart",i),e.addEventListener("touchend",u),function(){e.removeEventListener("mousedown",t),e.removeEventListener("mouseup",r),e.removeEventListener("touchstart",i),e.removeEventListener("touchend",u)}}}),[n,f,v]),e((function(){if(o())return function(){d.current&&clearTimeout(d.current)}}),[])},j=function(r,i){void 0===i&&(i={});var u=n(null),c=u[0],a=u[1],l=n(!1),s=l[0],v=l[1],h=n(null),w=h[0],m=h[1],g=n(!1),p=g[0],E=g[1],y=t((function(){return d(void 0,void 0,void 0,(function(){var n,e,t;return f(this,(function(u){switch(u.label){case 0:if(!o())return[2];v(!0),m(null),u.label=1;case 1:return u.trys.push([1,4,5,6]),[4,fetch(r,{method:i.method||"GET",headers:i.headers,body:i.body})];case 2:if(!(n=u.sent()).ok)throw new Error("Error: ".concat(n.statusText));return[4,n.json()];case 3:return e=u.sent(),a(e),[3,6];case 4:return t=u.sent(),m(t),[3,6];case 5:return v(!1),[7];case 6:return[2]}}))}))}),[r,i]);return e((function(){y()}),[]),e((function(){p&&(y(),E(!1))}),[p]),{data:c,loading:s,error:w,refetch:function(){return E(!0)}}},q=function(){var r=n(!1),i=r[0],u=r[1],c=t((function(){o()&&(document.body.style.overflow="hidden",u(!0))}),[]),a=t((function(){o()&&(document.body.style.overflow="",u(!1))}),[]);return e((function(){if(o()&&window.MutationObserver){var n=new MutationObserver((function(n){n.forEach((function(n){if("attributes"===n.type&&"style"===n.attributeName){var e=document.body.style.overflow;i&&"hidden"!==e&&(document.body.style.overflow="hidden")}}))}));return n.observe(document.body,{attributes:!0,attributeFilter:["style"]}),function(){n.disconnect(),i&&(document.body.style.overflow="")}}}),[i]),{lockScroll:c,unlockScroll:a,isLocked:i}},W=function(){var e=function(){for(var n="#",e=0;e<6;e++)n+="0123456789ABCDEF"[Math.floor(16*Math.random())];return n},r=n(o()?e():"#000000"),i=r[0],u=r[1];return{color:i,generateNewColor:t((function(){u(e())}),[])}},G=function(t,r){var i=n(t),u=i[0],c=i[1];return e((function(){if(o()){var n=setTimeout((function(){c(t)}),r);return function(){clearTimeout(n)}}}),[t,r]),u};function H(n){var t=r();return e((function(){o()&&(t.current=n)}),[n]),t.current}var K=function(n,e){var i=r(n);return i.current=n,t(function(n,e){var t;return function(){for(var r=[],o=0;o<arguments.length;o++)r[o]=arguments[o];clearTimeout(t),t=setTimeout((function(){n.apply(void 0,r)}),e)}}((function(){for(var n=[],e=0;e<arguments.length;e++)n[e]=arguments[e];o()&&i.current.apply(i,n)}),e),[e])},Q=function(e){var r=t((function(){if(o()){var n=document.cookie.match(new RegExp("(^| )".concat(e,"=([^;]+)")));return n?decodeURIComponent(n[2]):void 0}}),[e]),i=n(o()?r():void 0),u=i[0],c=i[1],a=t((function(n,t){if(void 0===t&&(t={}),o()){var r="".concat(e,"=").concat(encodeURIComponent(n));if(t.expires){var i=t.expires instanceof Date?t.expires:new Date(Date.now()+1e3*t.expires);r+="; expires=".concat(i.toUTCString())}t.path&&(r+="; path=".concat(t.path)),t.domain&&(r+="; domain=".concat(t.domain)),t.secure&&(r+="; secure"),t.sameSite&&(r+="; samesite=".concat(t.sameSite)),document.cookie=r,c(n)}}),[e]),l=t((function(){a("",{expires:-1})}),[a]),s=t((function(){return o()&&void 0!==r()}),[r]);return{value:u,setCookie:a,removeCookie:l,hasCookie:s}},Z=function(n,t){var i=r(!0);e((function(){if(o()){if(!i.current)return n();i.current=!1}}),t)},$=function(r){var i=n(null),u=i[0],c=i[1],a=n(!1),l=a[0],s=a[1],d=n(null),f=d[0],v=d[1];return e((function(){if(o()&&window.Audio){var n=new Audio(r);c(n);var e=function(){return s(!0)},t=function(){return s(!1)},i=function(n){return v(n)};return n.addEventListener("play",e),n.addEventListener("pause",t),n.addEventListener("error",i),function(){n.removeEventListener("play",e),n.removeEventListener("pause",t),n.removeEventListener("error",i),n.pause(),n.currentTime=0}}v(new Error("Sound is not supported in this environment."))}),[r]),{play:t((function(){u&&u.play().catch((function(n){return v(n)}))}),[u]),pause:t((function(){u&&u.pause()}),[u]),stop:t((function(){u&&(u.pause(),u.currentTime=0)}),[u]),setVolume:t((function(n){u&&(u.volume=n)}),[u]),isPlaying:l,error:f}},_=function(){var r=n(o()&&"vibrate"in navigator),i=r[0],u=r[1],c=n(null),a=c[0],l=c[1];return e((function(){o()?u("vibrate"in navigator):u(!1)}),[]),{vibrate:t((function(n){if(i)try{navigator.vibrate(n)}catch(n){l(n)}else l(new Error("Vibration is not supported on this device."))}),[i]),stop:t((function(){i&&navigator.vibrate(0)}),[i]),isSupported:i,error:a}},nn=function(){var t=n(o()?navigator.language:""),r=t[0],i=t[1],u=n(o()?Array.from(navigator.languages):[]),c=u[0],a=u[1],l=n(o()&&!!navigator.language),s=l[0],d=l[1];return e((function(){o()?(navigator.language&&(i(navigator.language),d(!0)),navigator.languages&&navigator.languages.length>0?(a(Array.from(navigator.languages)),d(!0)):d(!1)):d(!1)}),[]),{language:r,languages:c,isSupported:s}},en=function(i,u){void 0===u&&(u={});var c=n(o()?Notification.permission:"default"),a=c[0],l=c[1],s=r(null),v=t((function(){return d(void 0,void 0,void 0,(function(){var n;return f(this,(function(e){switch(e.label){case 0:return o()?[4,Notification.requestPermission()]:[2];case 1:return n=e.sent(),l(n),[2]}}))}))}),[]),h=t((function(){o()&&"granted"===a&&(s.current=new Notification(i,u))}),[a,i,u]),w=t((function(n,e){var t;void 0===e&&(e={}),o()&&"granted"===a&&(null===(t=s.current)||void 0===t||t.close(),s.current=new Notification(n,e))}),[a]);return e((function(){o()&&"default"===a&&v()}),[a,v]),{permission:a,showNotification:h,requestPermission:v,updateNotification:w}},tn=function(){var r=n(window.history),i=r[0];r[1];var u=n(null),c=u[0],a=u[1],l=t((function(n,e){o()&&(window.history.pushState(e,"",n),a(e||null))}),[]),s=t((function(n,e){o()&&(window.history.replaceState(e,"",n),a(e||null))}),[]),d=t((function(){o()&&window.history.back()}),[]),f=t((function(){o()&&window.history.forward()}),[]);return e((function(){var n=function(n){a(n.state||null)};if(o())return window.addEventListener("popstate",n),function(){window.removeEventListener("popstate",n)}}),[]),{history:i,state:c,push:l,replace:s,goBack:d,goForward:f}},rn=function(r){var i=n({x:null,y:null}),u=i[0],c=i[1],a=n({x:null,y:null}),l=a[0],s=a[1],d=n({x:null,y:null}),f=d[0],v=d[1],h=t((function(n){var e=n.touches[0];c({x:e.clientX,y:e.clientY})}),[]),w=t((function(n){var e=n.touches[0];s({x:e.clientX,y:e.clientY})}),[]),m=t((function(){v(l),s({x:null,y:null}),c({x:null,y:null})}),[l]);return e((function(){if(o()&&r.current){var n=r.current;return n.addEventListener("touchstart",h),n.addEventListener("touchmove",w),n.addEventListener("touchend",m),function(){n.removeEventListener("touchstart",h),n.removeEventListener("touchmove",w),n.removeEventListener("touchend",m)}}}),[r,h,w,m]),{touchStart:u,touchMove:l,touchEnd:f}},on=function(){var r=n({startX:null,startY:null,endX:null,endY:null,direction:null}),i=r[0],u=r[1],c=t((function(n){var e=n.touches[0];u((function(n){return s(s({},n),{startX:e.clientX,startY:e.clientY})}))}),[]),a=t((function(n){var e=n.touches[0];u((function(n){return s(s({},n),{endX:e.clientX,endY:e.clientY})}))}),[]),l=t((function(){u((function(n){var e=n.startX,t=n.startY,r=n.endX,o=n.endY;if(null===e||null===t||null===r||null===o)return n;var i=r-e,u=o-t,c=null;return c=Math.abs(i)>Math.abs(u)?i>0?"right":"left":u>0?"down":"up",s(s({},n),{direction:c})}))}),[]);e((function(){if(o())return window.addEventListener("touchstart",c),window.addEventListener("touchmove",a),window.addEventListener("touchend",l),function(){window.removeEventListener("touchstart",c),window.removeEventListener("touchmove",a),window.removeEventListener("touchend",l)}}),[c,a,l]);return{swipeState:i,reset:function(){u({startX:null,startY:null,endX:null,endY:null,direction:null})}}},un=function(r){var i=n({startX:null,startY:null,endX:null,endY:null,direction:null}),u=i[0],c=i[1],a=t((function(n){var e=n.touches[0];c((function(n){return s(s({},n),{startX:e.clientX,startY:e.clientY})}))}),[]),l=t((function(n){var e=n.touches[0];c((function(n){return s(s({},n),{endX:e.clientX,endY:e.clientY})}))}),[]),d=t((function(){c((function(n){var e=n.startX,t=n.startY,r=n.endX,o=n.endY;if(null===e||null===t||null===r||null===o)return n;var i=r-e,u=o-t,c=null;return c=Math.abs(i)>Math.abs(u)?i>0?"right":"left":u>0?"down":"up",s(s({},n),{direction:c})}))}),[]);e((function(){if(o()&&r.current){var n=r.current;return n.addEventListener("touchstart",a),n.addEventListener("touchmove",l),n.addEventListener("touchend",d),function(){n.removeEventListener("touchstart",a),n.removeEventListener("touchmove",l),n.removeEventListener("touchend",d)}}}),[r,a,l,d]);return{swipeState:u,reset:function(){c({startX:null,startY:null,endX:null,endY:null,direction:null})}}};export{m as useBattery,F as useClickOutside,v as useClipboard,Q as useCookie,G as useDebounce,K as useDebouncedCallback,I as useDeviceOrientation,N as useDimensions,V as useEventListener,T as useFavicon,j as useFetch,S as useFocusBlur,h as useGeolocation,tn as useHistory,Y as useHover,B as useIdle,P as useIntersectionObserver,D as useKeyCombo,A as useKeyPress,O as useLocalStorage,U as useLongPress,M as useMediaQuery,J as useMouse,R as useMutationObserver,en as useNotification,l as useOnlineStatus,nn as usePreferredLanguage,H as usePrevious,W as useRandomColor,X as useScript,k as useScrollIntoPosition,q as useScrollLock,b as useScrollPosition,C as useSessionStorage,$ as useSound,x as useStopwatch,a as useSystemTheme,w as useTitle,rn as useTouch,un as useTouchSwipe,Z as useUpdateEffect,_ as useVibration,z as useWindowFocus,L as useWindowScrollIntoPosition,y as useWindowScrollPosition,p as useWindowSize,on as useWindowTouchSwipe};