diff --git a/packages/desktop/src/providers/ElectronProvider.tsx b/packages/desktop/src/providers/ElectronProvider.tsx index cbafbe2..1822fa7 100644 --- a/packages/desktop/src/providers/ElectronProvider.tsx +++ b/packages/desktop/src/providers/ElectronProvider.tsx @@ -22,6 +22,16 @@ export function ElectronProvider({ children }: { children: React.ReactNode }) { const [desktopMode, setDesktopMode] = useState('mainApp'); const [isWindowFocused, setIsWindowFocused] = useState(false); + const [isOffline, setIsOffline] = useState(); + + // handle network connection + useEffect(() => { + setIsOffline(!navigator.onLine); + + window.addEventListener('online', () => setIsOffline(false)); + window.addEventListener('offline', () => setIsOffline(true)); + }, [setIsOffline]); + // handle all window resizing logic useEffect(() => { // add dimensions if it's not overlay only mode @@ -80,6 +90,13 @@ export function ElectronProvider({ children }: { children: React.ReactNode }) { setDesktopMode((prevMode) => (prevMode === 'mainApp' ? 'overlayOnly' : 'mainApp')); }, [setDesktopMode]); + if (isOffline) + return ( +
+ {'poor network connection... :('}{' '} +
+ ); + return ( {children}