App.tsx 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. import { lazy, Suspense } from 'react';
  2. import { BrowserRouter, Switch } from 'react-router-dom';
  3. import { ToastContainer } from 'react-toastify';
  4. import s from './App.module.css';
  5. import PrivateRoute from './components/Routes/PrivateRoute/PrivateRoute';
  6. import PublicRoute from './components/Routes/PublicRoute/PublicRoute';
  7. import Loader from './components/Loader/Loader';
  8. const AuthPage = lazy(
  9. () =>
  10. import(
  11. './components/AuthPage' /* webpackChunkName: "AuthPage" */
  12. ),
  13. );
  14. function App() {
  15. return (
  16. <div className={s.appWrapper}>
  17. <Suspense fallback={<Loader />}>
  18. <BrowserRouter>
  19. <Switch>
  20. <PrivateRoute exact path="/">
  21. Home
  22. </PrivateRoute>
  23. <PublicRoute exact path={'/z/'} restricted>
  24. <AuthPage />
  25. </PublicRoute>
  26. </Switch>
  27. </BrowserRouter>
  28. </Suspense>
  29. <ToastContainer
  30. position="top-right"
  31. autoClose={3000}
  32. hideProgressBar={false}
  33. newestOnTop={false}
  34. closeOnClick
  35. rtl={false}
  36. pauseOnFocusLoss
  37. draggable
  38. pauseOnHover
  39. />
  40. </div>
  41. );
  42. }
  43. export default App;