"use strict";(self.webpackChunkCustomerApp=self.webpackChunkCustomerApp||[]).push([[3661],{83661:(e,t,n)=>{n.r(t),n.d(t,{NetInfoCellularGeneration:()=>c,NetInfoStateType:()=>l,addEventListener:()=>x,configure:()=>k,default:()=>L,fetch:()=>E,refresh:()=>T,useNetInfo:()=>H});var i=n(32330),a=n(59113);const s={reachabilityUrl:"/",reachabilityMethod:"HEAD",reachabilityTest:e=>Promise.resolve(200===e.status),reachabilityShortTimeout:5e3,reachabilityLongTimeout:6e4,reachabilityRequestTimeout:15e3,reachabilityShouldRun:()=>!0,shouldFetchWiFiSSID:!0,useNativeReachability:!0},r="netInfo.networkStatusDidChange";let l,c;!function(e){e.unknown="unknown",e.none="none",e.cellular="cellular",e.wifi="wifi",e.bluetooth="bluetooth",e.ethernet="ethernet",e.wimax="wimax",e.vpn="vpn",e.other="other"}(l||(l={})),function(e){e["2g"]="2g",e["3g"]="3g",e["4g"]="4g",e["5g"]="5g"}(c||(c={}));const o="undefined"!=typeof window,h=o?window.navigator.connection||window.navigator.mozConnection||window.navigator.webkitConnection:void 0,u={bluetooth:l.bluetooth,cellular:l.cellular,ethernet:l.ethernet,none:l.none,other:l.other,unknown:l.unknown,wifi:l.wifi,wimax:l.wimax,mixed:l.other},d={"2g":c["2g"],"3g":c["3g"],"4g":c["4g"],"slow-2g":c["2g"]},b=e=>{const t=navigator.onLine,n={isInternetReachable:null};if(!h){if(t){return{...n,isConnected:!0,type:l.other,details:{isConnectionExpensive:!1}}}return{...n,isConnected:!1,isInternetReachable:!1,type:l.none,details:null}}const i=h.saveData,a=h.type?u[h.type]:t?l.other:l.unknown;if(a===l.bluetooth){return{...n,isConnected:!0,type:a,details:{isConnectionExpensive:i}}}if(a===l.cellular){return{...n,isConnected:!0,type:a,details:{isConnectionExpensive:i,cellularGeneration:d[h.effectiveType]||null,carrier:null}}}if(a===l.ethernet){return{...n,isConnected:!0,type:a,details:{isConnectionExpensive:i,ipAddress:null,subnet:null}}}if(a===l.wifi){return{...n,isConnected:!0,type:a,details:{isConnectionExpensive:i,ssid:null,bssid:null,strength:null,ipAddress:null,subnet:null,frequency:null,linkSpeed:null,rxLinkSpeed:null,txLinkSpeed:null}}}if(a===l.wimax){return{...n,isConnected:!0,type:a,details:{isConnectionExpensive:i}}}if(a===l.none){return{...n,isConnected:!1,isInternetReachable:!1,type:a,details:null}}if(a===l.unknown){return{...n,isConnected:t,isInternetReachable:null,type:a,details:null}}return{...n,isConnected:!0,type:l.other,details:{isConnectionExpensive:i}}},_=[],f=[],p={addListener(e,t){switch(e){case r:{const e=()=>{t(b())};h?h.addEventListener("change",e):o&&(window.addEventListener("online",e,!1),window.addEventListener("offline",e,!1)),_.push(t),f.push(e);break}}},removeListeners(e,t){switch(e){case r:{const e=_.indexOf(t),n=f[e];h?h.removeEventListener("change",n):o&&(window.removeEventListener("online",n),window.removeEventListener("offline",n)),_.splice(e,1),f.splice(e,1);break}}},getCurrentState:async e=>b(),configure(){}},y=new a.NativeEventEmitter;p.addListener(r,(e=>{y.emit(r,e)}));const v={...p,eventEmitter:y};function m(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}class w{constructor(e,t){m(this,"_configuration",void 0),m(this,"_listener",void 0),m(this,"_isInternetReachable",void 0),m(this,"_currentInternetReachabilityCheckHandler",null),m(this,"_currentTimeoutHandle",null),m(this,"_setIsInternetReachable",(e=>{this._isInternetReachable!==e&&(this._isInternetReachable=e,this._listener(this._isInternetReachable))})),m(this,"_setExpectsConnection",(e=>{null!==this._currentInternetReachabilityCheckHandler&&(this._currentInternetReachabilityCheckHandler.cancel(),this._currentInternetReachabilityCheckHandler=null),null!==this._currentTimeoutHandle&&(clearTimeout(this._currentTimeoutHandle),this._currentTimeoutHandle=null),e&&this._configuration.reachabilityShouldRun()?(this._isInternetReachable||this._setIsInternetReachable(null),this._currentInternetReachabilityCheckHandler=this._checkInternetReachability()):this._setIsInternetReachable(!1)})),m(this,"_checkInternetReachability",(()=>{const e=fetch(this._configuration.reachabilityUrl,{method:this._configuration.reachabilityMethod,cache:"no-cache"});let t;const n=new Promise(((e,n)=>{t=setTimeout((()=>n("timedout")),this._configuration.reachabilityRequestTimeout)}));let i=()=>{};const a=new Promise(((e,t)=>{i=()=>t("canceled")}));return{promise:Promise.race([e,n,a]).then((e=>this._configuration.reachabilityTest(e))).then((e=>{this._setIsInternetReachable(e);const t=this._isInternetReachable?this._configuration.reachabilityLongTimeout:this._configuration.reachabilityShortTimeout;this._currentTimeoutHandle=setTimeout(this._checkInternetReachability,t)})).catch((e=>{"canceled"!==e&&(this._setIsInternetReachable(!1),this._currentTimeoutHandle=setTimeout(this._checkInternetReachability,this._configuration.reachabilityShortTimeout))})).then((()=>{clearTimeout(t)}),(e=>{throw clearTimeout(t),e})),cancel:i}})),m(this,"update",(e=>{"boolean"==typeof e.isInternetReachable&&this._configuration.useNativeReachability?this._setIsInternetReachable(e.isInternetReachable):this._setExpectsConnection(e.isConnected)})),m(this,"currentState",(()=>this._isInternetReachable)),m(this,"tearDown",(()=>{null!==this._currentInternetReachabilityCheckHandler&&(this._currentInternetReachabilityCheckHandler.cancel(),this._currentInternetReachabilityCheckHandler=null),null!==this._currentTimeoutHandle&&(clearTimeout(this._currentTimeoutHandle),this._currentTimeoutHandle=null)})),this._configuration=e,this._listener=t}}function R(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}class I{constructor(e){R(this,"_nativeEventSubscription",null),R(this,"_subscriptions",new Set),R(this,"_latestState",null),R(this,"_internetReachability",void 0),R(this,"_handleNativeStateUpdate",(e=>{this._internetReachability.update(e);const t=this._convertState(e);this._latestState=t,this._subscriptions.forEach((e=>e(t)))})),R(this,"_handleInternetReachabilityUpdate",(e=>{if(!this._latestState)return;const t={...this._latestState,isInternetReachable:e};this._latestState=t,this._subscriptions.forEach((e=>e(t)))})),R(this,"_fetchCurrentState",(async e=>{const t=await v.getCurrentState(e);this._internetReachability.update(t);const n=this._convertState(t);return e||(this._latestState=n,this._subscriptions.forEach((e=>e(n)))),n})),R(this,"_convertState",(e=>"boolean"==typeof e.isInternetReachable?e:{...e,isInternetReachable:this._internetReachability.currentState()})),R(this,"latest",(e=>e?this._fetchCurrentState(e):this._latestState?Promise.resolve(this._latestState):this._fetchCurrentState())),R(this,"add",(e=>{this._subscriptions.add(e),this._latestState?e(this._latestState):this.latest().then(e)})),R(this,"remove",(e=>{this._subscriptions.delete(e)})),R(this,"tearDown",(()=>{this._internetReachability&&this._internetReachability.tearDown(),this._nativeEventSubscription&&this._nativeEventSubscription.remove(),this._subscriptions.clear()})),this._internetReachability=new w(e,this._handleInternetReachabilityUpdate),this._nativeEventSubscription=v.eventEmitter.addListener(r,this._handleNativeStateUpdate),this._fetchCurrentState()}}let g=s,C=null;const S=()=>new I(g);function k(e){g={...s,...e},C&&(C.tearDown(),C=S()),"ios"===a.Platform.OS&&v.configure(e)}function E(e){return C||(C=S()),C.latest(e)}function T(){return C||(C=S()),C._fetchCurrentState()}function x(e){return C||(C=S()),C.add(e),()=>{C&&C.remove(e)}}function H(e){e&&k(e);const[t,n]=(0,i.useState)({type:l.unknown,isConnected:null,isInternetReachable:null,details:null});return(0,i.useEffect)((()=>x(n)),[]),t}const L={configure:k,fetch:E,refresh:T,addEventListener:x,useNetInfo:H}}}]);