import { Component, ReactElement, ReactNode } from 'react'; import { inject, observer } from 'mobx-react'; import { ThemeProvider } from 'react-jss'; import { Location } from 'mobx-react-router'; import { StoresProps } from '../../@types/ferdium-components.types'; import AuthLayout from '../../components/auth/AuthLayout'; import AppLoader from '../../components/ui/AppLoader'; interface AuthLayoutContainerProps extends StoresProps { location: Location; children: ReactNode; } class AuthLayoutContainer extends Component { render(): ReactElement { const { stores, actions, children, location } = this.props; const { app, features, globalError, user } = stores; const isLoadingBaseFeatures = features.defaultFeaturesRequest.isExecuting && !features.defaultFeaturesRequest.wasExecuted; if (isLoadingBaseFeatures) { return ( ); } const { isLoggingOut } = user; if (isLoggingOut) { return ( ); } return ( {children} ); } } export default inject('stores', 'actions')(observer(AuthLayoutContainer));