All Downloads are FREE. Search and download functionalities are using the official Maven repository.

rs.runtime.gears-frontend.0.79.2.source-code.App.tsx Maven / Gradle / Ivy

import { useCurrentUser } from 'authentication/main';
import PageLoader from 'components/common/PageLoader';
import ConfigProvider, { GearsConfig } from 'contexts/ConfigContext';
import LocaleProvider, { LocaleConfig } from 'contexts/LocaleContext';
import NotificationProvider from 'contexts/NotificationContext';
import Report from 'helpers/report';
import { useConfig } from 'hooks/config';
import { useTranslations } from 'hooks/translation';
import { useTranslator } from 'hooks/translator';
import { ErrorBoundary } from 'react-error-boundary';
import { useTranslation } from 'react-i18next';
import { useRoutes } from 'react-router-dom';
import i18n from 'utils/i18n';

import { ThemeProvider } from '@emotion/react';
import { StyledEngineProvider, ThemeProvider as MuiThemeProvider } from '@mui/material/styles';
import { AdapterDateFns } from '@mui/x-date-pickers/AdapterDateFns';
import { LocalizationProvider } from '@mui/x-date-pickers/LocalizationProvider';

import routes from './routes';
import GlobalStyles from './theme/GlobalStyles';

const App = () => {
  const translations = useTranslations()

  const errorHandler = (error: any) => {
    console.error("An error occured: %o", error)
  }

  const fallback = ({error, resetErrorBoundary}: {error: any, resetErrorBoundary: any}) => {
    const detailReport = Report.error(Report.frontend, Report.code.frontend.Broken, {component: "main"})
    const report = Report.from(error, undefined, {verbose: detailReport.message, options: {component: "main"}})
    return report.toNotification()
  }

  return (
    
      
        
          {/* @ts-ignore */}
          
            {(locale: LocaleConfig) =>
              
                
                  { (config: GearsConfig) =>
                    
                      
                        
                        
                      
                    
                  }
                
              
            }
          
        
      
    
  );
};

const AppContent = ({loading}: {loading: boolean}) => {
  const user                       = useCurrentUser()
  const content                    = useRoutes(routes(user));
  const { ready }                  = useTranslation('translation', { useSuspense: false })
  const languageIsLoading          = !ready || !i18n.isInitialized
  const { loading: configLoading } = useConfig()

  // console.log("loading=%o, user.loading=%o, languageIsLoading=%o", loading, user.loading, languageIsLoading)
  return (
    
      {content}
    
  )
}

export default App;




© 2015 - 2024 Weber Informatics LLC | Privacy Policy