ElectronicBabylonianLiterature/ebl-frontend

View on GitHub
src/App.tsx

Summary

Maintainability
A
0 mins
Test Coverage
A
100%
import React from 'react'
import ReactGA from 'react-ga4'

import SessionContext from 'auth/SessionContext'
import ErrorBoundary from 'common/ErrorBoundary'

import { useAuthentication } from 'auth/Auth'
import Router, { Services } from 'router/router'
import { DictionaryContext } from 'dictionary/ui/dictionary-context'

if (process.env.REACT_APP_GA_TRACKING_ID) {
  ReactGA.initialize(process.env.REACT_APP_GA_TRACKING_ID)
}

function App(services: Services): JSX.Element {
  const authenticationService = useAuthentication()
  return (
    <SessionContext.Provider value={authenticationService.getSession()}>
      <DictionaryContext.Provider value={services.wordService}>
        <ErrorBoundary>
          <Router {...services} />
        </ErrorBoundary>
      </DictionaryContext.Provider>
    </SessionContext.Provider>
  )
}

export default App