poor network connection handle
This commit is contained in:
@@ -22,6 +22,16 @@ export function ElectronProvider({ children }: { children: React.ReactNode }) {
|
|||||||
const [desktopMode, setDesktopMode] = useState<DesktopMode>('mainApp');
|
const [desktopMode, setDesktopMode] = useState<DesktopMode>('mainApp');
|
||||||
const [isWindowFocused, setIsWindowFocused] = useState<boolean>(false);
|
const [isWindowFocused, setIsWindowFocused] = useState<boolean>(false);
|
||||||
|
|
||||||
|
const [isOffline, setIsOffline] = useState<boolean>();
|
||||||
|
|
||||||
|
// handle network connection
|
||||||
|
useEffect(() => {
|
||||||
|
setIsOffline(!navigator.onLine);
|
||||||
|
|
||||||
|
window.addEventListener('online', () => setIsOffline(false));
|
||||||
|
window.addEventListener('offline', () => setIsOffline(true));
|
||||||
|
}, [setIsOffline]);
|
||||||
|
|
||||||
// handle all window resizing logic
|
// handle all window resizing logic
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
// add dimensions if it's not overlay only mode
|
// 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((prevMode) => (prevMode === 'mainApp' ? 'overlayOnly' : 'mainApp'));
|
||||||
}, [setDesktopMode]);
|
}, [setDesktopMode]);
|
||||||
|
|
||||||
|
if (isOffline)
|
||||||
|
return (
|
||||||
|
<div className="h-screen w-screen bg-white flex-1 flex flex-row justify-center items-center">
|
||||||
|
<span>{'poor network connection... :('}</span>{' '}
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<ElectronContext.Provider value={{ desktopMode, handleToggleDesktopMode, isWindowFocused }}>
|
<ElectronContext.Provider value={{ desktopMode, handleToggleDesktopMode, isWindowFocused }}>
|
||||||
{children}
|
{children}
|
||||||
|
|||||||
Reference in New Issue
Block a user