/
vlad82098
/
PRACTIC2
Обзор
Документация
Войти
/
vlad82098
/
PRACTIC2
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
src/App.js
47 строк
1 KB
влад
first commit
19 дек 2025, 06:16
19 дек 2025, 06:16
6bb42b0
Код
Авторство
О чём код?
import React, { useState, useEffect } from "react"; import { Routes, Route } from "react-router-dom"; import HomePage from "./pages/HomePage/HomePage"; import Profile from "./pages/Profile/Profile"; import LearningPage from "./pages/LearningPage/LearningPage"; import "./styles/App.css"; import "./styles/components.css"; import Login from "./pages/Login/Login"; <Route path="/login" element={<Login />} /> function App() { const [theme, setTheme] = useState("light"); useEffect(() => { const savedTheme = localStorage.getItem("theme"); const prefersDark = window.matchMedia("(prefers-color-scheme: dark)").matches; const initialTheme = savedTheme || (prefersDark ? "dark" : "light"); setTheme(initialTheme); document.body.setAttribute("data-theme", initialTheme); document.body.classList.add("theme-transition"); }, []); const toggleTheme = () => { const newTheme = theme === "light" ? "dark" : "light"; setTheme(newTheme); document.body.setAttribute("data-theme", newTheme); localStorage.setItem("theme", newTheme); document.body.classList.add("theme-changing"); setTimeout(() => { document.body.classList.remove("theme-changing"); }, 300); }; return ( <Routes> <Route path="/" element={<HomePage theme={theme} toggleTheme={toggleTheme} />} /> <Route path="/profile" element={<Profile />} /> <Route path="/learning/:courseId" element={<LearningPage />} /> </Routes> ); } export default App;