{"version":3,"file":"checkNetworkStatus-BJoo_hsu.js","sources":["../../../app/javascript/utils/checkNetworkStatus.js"],"sourcesContent":["export default class NetworkStatus {\n constructor() {\n this.online = false; // Assume offline initially\n this.imgUrl = \"/assets/images/1x1.png\";\n this.onlineListeners = [];\n this.offlineListeners = [];\n this.statusListeners = [];\n this.checkInterval = 30000; // Check every 30 seconds\n\n // Start checking periodically\n this.intervalId = setInterval(() => {\n this.checkOnlineStatus();\n }, this.checkInterval);\n }\n\n addEventListener(event, callbackFunction) {\n switch (event) {\n case \"online\":\n this.onlineListeners.push(callbackFunction);\n break;\n case \"offline\":\n this.offlineListeners.push(callbackFunction);\n break;\n case \"status\":\n this.statusListeners.push(callbackFunction);\n }\n }\n\n async checkOnlineStatus() {\n try {\n const response = await fetch(this.imgUrl, { cache: \"no-store\" });\n this.online = response.status >= 200 && response.status < 300;\n this.notifyListeners(this.onlineListeners);\n this.notifyListeners(this.statusListeners);\n } catch (err) {\n this.online = false;\n this.notifyListeners(this.offlineListeners);\n this.notifyListeners(this.statusListeners);\n }\n }\n\n notifyListeners(listeners) {\n listeners.forEach((listener) => {\n try {\n listener(this.online);\n } catch (error) {\n console.error(\"Error in network status listener:\", error);\n }\n });\n }\n\n destroy() {\n // Clear the interval when the component is destroyed\n clearInterval(this.intervalId);\n }\n}\n\n// Create a singleton instance of NetworkStatus\nconst networkStatus = new NetworkStatus();\nexport { networkStatus };\n"],"names":["NetworkStatus","event","callbackFunction","response","listeners","listener","error","networkStatus"],"mappings":"8WAAe,MAAMA,CAAc,CACjC,aAAc,CACZ,KAAK,OAAS,GACd,KAAK,OAAS,yBACd,KAAK,gBAAkB,GACvB,KAAK,iBAAmB,GACxB,KAAK,gBAAkB,GACvB,KAAK,cAAgB,IAGrB,KAAK,WAAa,YAAY,IAAM,CAClC,KAAK,kBAAiB,CAC5B,EAAO,KAAK,aAAa,CACtB,CAED,iBAAiBC,EAAOC,EAAkB,CACxC,OAAQD,EAAK,CACX,IAAK,SACH,KAAK,gBAAgB,KAAKC,CAAgB,EAC1C,MACF,IAAK,UACH,KAAK,iBAAiB,KAAKA,CAAgB,EAC3C,MACF,IAAK,SACH,KAAK,gBAAgB,KAAKA,CAAgB,CAC7C,CACF,CAED,MAAM,mBAAoB,CACxB,GAAI,CACF,MAAMC,EAAW,MAAM,MAAM,KAAK,OAAQ,CAAE,MAAO,UAAU,CAAE,EAC/D,KAAK,OAASA,EAAS,QAAU,KAAOA,EAAS,OAAS,IAC1D,KAAK,gBAAgB,KAAK,eAAe,EACzC,KAAK,gBAAgB,KAAK,eAAe,CAC1C,MAAa,CACZ,KAAK,OAAS,GACd,KAAK,gBAAgB,KAAK,gBAAgB,EAC1C,KAAK,gBAAgB,KAAK,eAAe,CAC1C,CACF,CAED,gBAAgBC,EAAW,CACzBA,EAAU,QAASC,GAAa,CAC9B,GAAI,CACFA,EAAS,KAAK,MAAM,CACrB,OAAQC,EAAO,CACd,QAAQ,MAAM,oCAAqCA,CAAK,CACzD,CACP,CAAK,CACF,CAED,SAAU,CAER,cAAc,KAAK,UAAU,CAC9B,CACH,CAGK,MAACC,EAAgB,IAAIP"}