|
1 | | -import { BrowserRouter as Router, Routes, Route } from 'react-router-dom'; |
| 1 | +import { AnimatePresence } from 'framer-motion'; |
| 2 | +import { lazy, Suspense } from 'react'; |
| 3 | +import { BrowserRouter as Router, Route, Routes } from 'react-router-dom'; |
2 | 4 | import ScrollToTop from './components/ScrollToTop'; |
3 | 5 | import AppFooter from './components/shared/AppFooter'; |
4 | 6 | import AppHeader from './components/shared/AppHeader'; |
5 | 7 | import './css/App.css'; |
6 | | -import About from './pages/AboutMe'; |
7 | | -import Contact from './pages/Contact.jsx'; |
8 | | -import Home from './pages/Home'; |
9 | | -import Projects from './pages/Projects'; |
10 | | -import ProjectSingle from './pages/ProjectSingle.jsx'; |
11 | | -import { AnimatePresence } from 'framer-motion'; |
12 | 8 | import UseScrollToTop from './hooks/useScrollToTop'; |
13 | 9 |
|
| 10 | +const About = lazy(() => import('./pages/AboutMe')); |
| 11 | +const Contact = lazy(() => import('./pages/Contact.jsx')); |
| 12 | +const Home = lazy(() => import('./pages/Home')); |
| 13 | +const Projects = lazy(() => import('./pages/Projects')); |
| 14 | +const ProjectSingle = lazy(() => import('./pages/ProjectSingle.jsx')); |
| 15 | + |
| 16 | + |
14 | 17 | function App() { |
15 | 18 | return ( |
16 | 19 | <AnimatePresence> |
17 | 20 | <div className=" bg-secondary-light dark:bg-primary-dark transition duration-300"> |
18 | 21 | <Router> |
19 | 22 | <ScrollToTop /> |
20 | 23 | <AppHeader /> |
21 | | - <Routes> |
22 | | - <Route path="/" element={<Home />} /> |
23 | | - <Route path="projects" element={<Projects />} /> |
24 | | - <Route |
25 | | - path="projects/single-project" |
26 | | - element={<ProjectSingle />} |
27 | | - /> |
| 24 | + <Suspense fallback={""}> |
| 25 | + <Routes> |
| 26 | + <Route path="/" element={<Home />} /> |
| 27 | + <Route path="projects" element={<Projects />} /> |
| 28 | + <Route |
| 29 | + path="projects/single-project" |
| 30 | + element={<ProjectSingle />} |
| 31 | + /> |
28 | 32 |
|
29 | | - <Route path="about" element={<About />} /> |
30 | | - <Route path="contact" element={<Contact />} /> |
31 | | - </Routes> |
| 33 | + <Route path="about" element={<About />} /> |
| 34 | + <Route path="contact" element={<Contact />} /> |
| 35 | + </Routes> |
| 36 | + </Suspense> |
32 | 37 | <AppFooter /> |
33 | 38 | </Router> |
34 | 39 | <UseScrollToTop /> |
|
0 commit comments