Skip to content
Snippets Groups Projects
App.tsx 1.3 KiB
Newer Older
  • Learn to ignore specific revisions
  • import Navbar from 'components/Navbar/Navbar'
    
    import WelcomeModal from 'components/Onboarding/WelcomeModal'
    import AppRoutes from 'components/Routes/Routes'
    
    Yoan VALLET's avatar
    Yoan VALLET committed
    import SplashRoot from 'components/Splash/SplashRoot'
    
    import { Content, Layout, Main } from 'cozy-ui/transpiled/react/Layout'
    import React, { useEffect } from 'react'
    import { useSelector } from 'react-redux'
    
    Bastien DUMONT's avatar
    Bastien DUMONT committed
    import { useLocation } from 'react-router-dom'
    
    import { AppStore } from 'store'
    import MatomoTracker from 'utils/matomoTracker'
    
    interface AppProps {
    
    Bastien DUMONT's avatar
    Bastien DUMONT committed
      tracker: undefined | MatomoTracker
    
    export const App = ({ tracker }: AppProps) => {
    
    Bastien DUMONT's avatar
    Bastien DUMONT committed
      const location = useLocation()
    
    Bastien DUMONT's avatar
    Bastien DUMONT committed
      const { onboarding } = useSelector((state: AppStore) => state.ecolyo.profile)
    
      const { termsStatus } = useSelector((state: AppStore) => state.ecolyo.global)
    
    Bastien DUMONT's avatar
    Bastien DUMONT committed
        tracker?.track(location)
      }, [tracker, location])
    
    Bastien DUMONT's avatar
    Bastien DUMONT committed
          <SplashRoot>
    
            {termsStatus.accepted && (
              <>
                <WelcomeModal open={!onboarding.isWelcomeSeen} />
                <Navbar />
              </>
            )}
            <Main>
              <Content className="app-content">
                <AppRoutes termsStatus={termsStatus} />
              </Content>
            </Main>
          </SplashRoot>
        </Layout>