Advertisement
gembleng

App.js

Oct 30th, 2022
663
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. import React, { useEffect, lazy, Suspense } from 'react';
  2. import { Route, Switch } from 'react-router-dom';
  3. import { connect } from 'react-redux';
  4.  
  5. import firebase from './firebase/firebase';
  6.  
  7. import * as actions from './store/actions/actions';
  8.  
  9. import Layout from './components/UI/Layout/Layout';
  10. import Loader from './components/UI/Loader/Loader';
  11.  
  12. const About = lazy(() => import('./components/Pages/About/About'));
  13. const Cart = lazy(() => import('./components/Pages/CartPage/CartPage'));
  14. const Checkout = lazy(() => import('./components/Pages/Checkout/Checkout'));
  15. const Disclaimer = lazy(() =>
  16.     import('./components/Pages/Disclaimer/Disclaimer')
  17. );
  18. const Error404 = lazy(() => import('./components/Pages/404/Error404'));
  19. const FAQ = lazy(() => import('./components/Pages/FAQ/FAQ'));
  20. const Home = lazy(() => import('./components/Pages/Home/Home'));
  21. const Login = lazy(() => import('./components/Pages/Login/Login'));
  22. const Logout = lazy(() => import('./components/Pages/Logout/Logout'));
  23. const Menu = lazy(() => import('./components/Pages/Menu/Menu'));
  24. const Orders = lazy(() => import('./components/Pages/Orders/Orders'));
  25. const Privacy = lazy(() => import('./components/Pages/Privacy/Privacy'));
  26. const Register = lazy(() => import('./components/Pages/Register/Register'));
  27. const Terms = lazy(() => import('./components/Pages/Terms/Terms'));
  28.  
  29. function App(props) {
  30.     useEffect(() => {
  31.         firebase.auth().onAuthStateChanged((user) => {
  32.             props.authChangedHandler(user);
  33.         });
  34.     }, [props]);
  35.  
  36.     return (
  37.         <>
  38.             <Suspense fallback={<Loader />}>
  39.                 <Layout>
  40.                     <Switch>
  41.                         <Route path='/' exact component={Home} />
  42.                         <Route path='/about' component={About} />
  43.                         <Route path='/cart' component={Cart} />
  44.                         <Route path='/checkout' component={Checkout} />
  45.                         <Route path='/disclaimer' component={Disclaimer} />
  46.                         <Route path='/faq' component={FAQ} />
  47.                         <Route path='/menu' component={Menu} />
  48.                         <Route path='/orders' component={Orders} />
  49.                         <Route path='/privacy-policy' component={Privacy} />
  50.                         <Route path='/register' component={Register} />
  51.                         <Route path='/terms-and-conditions' component={Terms} />
  52.                         <Route path='/login' component={Login} />
  53.                         <Route path='/logout' component={Logout} />
  54.                         <Route component={Error404} />
  55.                     </Switch>
  56.                 </Layout>
  57.             </Suspense>
  58.         </>
  59.     );
  60. }
  61.  
  62. const mapDispatchToProps = (dispatch) => ({
  63.     authChangedHandler: (user) => dispatch(actions.authChangedHandler(user)),
  64. });
  65.  
  66. export default connect(null, mapDispatchToProps)(App);
  67.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement