@uilabs/utils
Version:
Utility functions and hooks for React.
2 lines • 1.05 kB
JavaScript
import{clsx as a}from"clsx";import{twMerge as f}from"tailwind-merge";function d(...e){return f(a(e))}function m(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(e){var n=Math.random()*16|0,o=e==="x"?n:n&3|8;return o.toString(16)})}import t from"react";function p(e,n=500){let[o,i]=t.useState(e),[r,c]=t.useState(!1),u=t.useRef(null),s=t.useCallback(()=>{u.current&&(clearTimeout(u.current),u.current=null,c(!1))},[]);t.useEffect(()=>(s(),c(!0),u.current=setTimeout(()=>{i(e),c(!1),u.current=null},n),s),[e,n,s]);let l=t.useCallback(()=>r,[r]);return{debouncedValue:o,cancel:s,isPending:l}}import x from"react";function b(){let[e,n]=x.useState(!0);return x.useEffect(()=>{let o=typeof navigator<"u"?navigator.onLine:!0;n(o);let i=()=>n(!0),r=()=>n(!1);return window.addEventListener("online",i),window.addEventListener("offline",r),()=>{window.removeEventListener("online",i),window.removeEventListener("offline",r)}},[]),{isOnline:e}}export{d as cn,p as useDebounce,b as useNetwork,m as uuid};
//# sourceMappingURL=index.js.map