UNPKG

@guruhotel/aura-hooks

Version:

🪝 Hooks library designed by the Guruhotel team for Aura UI

1 lines 839 B
import{useState as n,useEffect as e,useCallback as o}from"react";import{useWindowEvent as t}from"../use-window-event/use-window-event";function i(){if("undefined"==typeof navigator)return{};const n=navigator,e=n.connection||n.mozConnection||n.webkitConnection;return e?{downlink:null==e?void 0:e.downlink,downlinkMax:null==e?void 0:e.downlinkMax,effectiveType:null==e?void 0:e.effectiveType,rtt:null==e?void 0:e.rtt,saveData:null==e?void 0:e.saveData,type:null==e?void 0:e.type}:{}}export function useNetwork(){const[r,a]=n({online:!0}),l=o((()=>a((n=>({...n,...i()})))),[]);return t("online",(()=>a({online:!0,...i()}))),t("offline",(()=>a({online:!1,...i()}))),e((()=>{if(navigator.connection)return a({online:!0,...i()}),navigator.connection.addEventListener("change",l),()=>navigator.connection.removeEventListener("change",l)}),[]),r}