/
DevMaster
/
my_cv
Обзор
Документация
Войти
/
DevMaster
/
my_cv
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
src/App.js
51 строка
2 KB
Oleg Kulichkov
update
13 май 2025, 00:10
13 май 2025, 00:10
571b26d
Код
Авторство
О чём код?
import { AnimatePresence } from "framer-motion"; import { lazy, Suspense } from "react"; import { BrowserRouter as Router, Route, Routes } from "react-router-dom"; import ScrollToTop from "./components/ScrollToTop"; import AppFooter from "./components/shared/AppFooter"; import AppHeader from "./components/shared/AppHeader"; import "./css/App.css"; import UseScrollToTop from "./hooks/useScrollToTop"; import { MetrikaCounter } from "react-metrika"; import { Analytics } from "@vercel/analytics/react"; const About = lazy(() => import("./pages/AboutMe")); const Contact = lazy(() => import("./pages/Contact.jsx")); const Home = lazy(() => import("./pages/Home")); const Projects = lazy(() => import("./pages/Projects")); const ProjectSingle = lazy(() => import("./pages/ProjectSingle.jsx")); function App() { return ( <AnimatePresence> <div className=" bg-secondary-light dark:bg-primary-dark transition duration-300"> <Router basename="/"> <ScrollToTop /> <AppHeader /> <Suspense fallback={""}> <Routes> <Route path="/" element={<Home />} /> <Route path="/projects" element={<Projects />} /> <Route path="/projects/:id" element={<ProjectSingle />} /> <Route path="/about" element={<About />} /> <Route path="/contact" element={<Contact />} /> </Routes> </Suspense> <AppFooter /> </Router> <UseScrollToTop /> <MetrikaCounter id={98653381} options={{ trackHash: true, webvisor: true, }} /> <Analytics /> </div> </AnimatePresence> ); } export default App;