import { PureComponent, Suspense } from 'react'; import Box from '@mui/material/Box'; import CircularProgress from '@mui/material/CircularProgress'; import { RouterProvider } from 'react-router-dom'; import authAutomat from './automats/authAutomat'; import LoginPage from './components/LoginPage'; import CompanySetupDialog from './components/CompanySetupDialog'; import { router } from './appRouter'; function PageFallback() { return ( ); } class App extends PureComponent { constructor(props) { super(props); this.state = authAutomat.state; } componentDidMount() { this.unsubscribe = authAutomat.subscribe(this, ['status', 'user']); } componentWillUnmount() { this.unsubscribe?.(); } render() { const { status, user } = this.state; if (status === 'loading') { return ( ); } if (status !== 'authed') { return ; } if (user?.selectedCompanyId == null) { return ; } return ( }> ); } } export default App;