import { Box, Button, CircularProgress, Container } from '@mui/joy' import { Typography } from '@mui/material' import { useEffect, useState } from 'react' import Logo from '../../Logo' import { networkManager } from '../../hooks/NetworkManager' const LoadingComponent = () => { const [message, setMessage] = useState('Loading...') const [subMessage, setSubMessage] = useState('') const [isOnline, setIsOnline] = useState(networkManager.isOnline) useEffect(() => { if (!isOnline) { setMessage('You are offline') setSubMessage( 'This not available while offline. Please check your internet connection and try again.', ) } }, [isOnline]) useEffect(() => { networkManager.registerNetworkListener(isOnline => setIsOnline(isOnline)) // if loading took more than 5 seconds update submessage to mention there might be an error: const timeout = setTimeout(() => { if (networkManager.isOnline) { setSubMessage( 'This is taking longer than usual. There might be an issue.', ) } }, 5000) return () => clearTimeout(timeout) }, []) return ( {message} {subMessage} ) } export default LoadingComponent