one
Version:
One is a React framework for web, iOS, and Android apps.
1 lines • 1.98 kB
Source Map (JSON)
{"version":3,"file":"index.js","names":[],"sources":["esm/platform/network/index.js"],"sourcesContent":["import { useEffect, useState } from \"react\";\nimport { assertStateListener } from \"./validate\";\nfunction currentState() {\n const isConnected = typeof navigator === \"undefined\" ? false : navigator.onLine !== false;\n return {\n type: isConnected ? \"unknown\" : \"none\",\n isConnected,\n isInternetReachable: isConnected\n };\n}\nasync function getState() {\n return currentState();\n}\nfunction addStateListener(listener) {\n assertStateListener(listener);\n if (typeof window === \"undefined\") return { remove: () => {\n } };\n const onChange = () => listener(currentState());\n window.addEventListener(\"online\", onChange);\n window.addEventListener(\"offline\", onChange);\n return {\n remove: () => {\n window.removeEventListener(\"online\", onChange);\n window.removeEventListener(\"offline\", onChange);\n }\n };\n}\nfunction useNetworkState() {\n const [state, setState] = useState(currentState);\n useEffect(() => {\n setState(currentState());\n return addStateListener(setState).remove;\n }, []);\n return state;\n}\nconst Network = Object.freeze({ getState, addStateListener });\nexport {\n Network,\n useNetworkState\n};\n//# sourceMappingURL=index.js.map\n"],"mappings":";;;;AAEA,SAAS,eAAe;CACtB,MAAM,cAAc,OAAO,cAAc,cAAc,QAAQ,UAAU,WAAW;CACpF,OAAO;EACL,MAAM,cAAc,YAAY;EAChC;EACA,qBAAqB;CACvB;AACF;AACA,eAAe,WAAW;CACxB,OAAO,aAAa;AACtB;AACA,SAAS,iBAAiB,UAAU;CAClC,oBAAoB,QAAQ;CAC5B,IAAI,OAAO,WAAW,aAAa,OAAO,EAAE,cAAc,CAC1D,EAAE;CACF,MAAM,iBAAiB,SAAS,aAAa,CAAC;CAC9C,OAAO,iBAAiB,UAAU,QAAQ;CAC1C,OAAO,iBAAiB,WAAW,QAAQ;CAC3C,OAAO,EACL,cAAc;EACZ,OAAO,oBAAoB,UAAU,QAAQ;EAC7C,OAAO,oBAAoB,WAAW,QAAQ;CAChD,EACF;AACF;AACA,SAAS,kBAAkB;CACzB,MAAM,CAAC,OAAO,YAAY,SAAS,YAAY;CAC/C,gBAAgB;EACd,SAAS,aAAa,CAAC;EACvB,OAAO,iBAAiB,QAAQ,CAAC,CAAC;CACpC,GAAG,CAAC,CAAC;CACL,OAAO;AACT;AACA,MAAM,UAAU,OAAO,OAAO;CAAE;CAAU;AAAiB,CAAC"}