diff --git a/ospabhost/package-lock.json b/ospabhost/package-lock.json index 10f4d95..0b2cbf1 100644 --- a/ospabhost/package-lock.json +++ b/ospabhost/package-lock.json @@ -12,6 +12,7 @@ "@testing-library/jest-dom": "^6.8.0", "@testing-library/react": "^16.3.0", "@testing-library/user-event": "^13.5.0", + "framer-motion": "^12.23.12", "react": "^19.1.1", "react-dom": "^19.1.1", "react-router-dom": "^7.9.1", @@ -8424,6 +8425,33 @@ "url": "https://github.com/sponsors/rawify" } }, + "node_modules/framer-motion": { + "version": "12.23.12", + "resolved": "https://registry.npmjs.org/framer-motion/-/framer-motion-12.23.12.tgz", + "integrity": "sha512-6e78rdVtnBvlEVgu6eFEAgG9v3wLnYEboM8I5O5EXvfKC8gxGQB8wXJdhkMy10iVcn05jl6CNw7/HTsTCfwcWg==", + "license": "MIT", + "dependencies": { + "motion-dom": "^12.23.12", + "motion-utils": "^12.23.6", + "tslib": "^2.4.0" + }, + "peerDependencies": { + "@emotion/is-prop-valid": "*", + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@emotion/is-prop-valid": { + "optional": true + }, + "react": { + "optional": true + }, + "react-dom": { + "optional": true + } + } + }, "node_modules/fresh": { "version": "0.5.2", "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", @@ -11524,6 +11552,21 @@ "mkdirp": "bin/cmd.js" } }, + "node_modules/motion-dom": { + "version": "12.23.12", + "resolved": "https://registry.npmjs.org/motion-dom/-/motion-dom-12.23.12.tgz", + "integrity": "sha512-RcR4fvMCTESQBD/uKQe49D5RUeDOokkGRmz4ceaJKDBgHYtZtntC/s2vLvY38gqGaytinij/yi3hMcWVcEF5Kw==", + "license": "MIT", + "dependencies": { + "motion-utils": "^12.23.6" + } + }, + "node_modules/motion-utils": { + "version": "12.23.6", + "resolved": "https://registry.npmjs.org/motion-utils/-/motion-utils-12.23.6.tgz", + "integrity": "sha512-eAWoPgr4eFEOFfg2WjIsMoqJTW6Z8MTUCgn/GZ3VRpClWBdnbjryiA3ZSNLyxCTmCQx4RmYX6jX1iWHbenUPNQ==", + "license": "MIT" + }, "node_modules/ms": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", diff --git a/ospabhost/package.json b/ospabhost/package.json index 4e1253f..9b32c88 100644 --- a/ospabhost/package.json +++ b/ospabhost/package.json @@ -7,6 +7,7 @@ "@testing-library/jest-dom": "^6.8.0", "@testing-library/react": "^16.3.0", "@testing-library/user-event": "^13.5.0", + "framer-motion": "^12.23.12", "react": "^19.1.1", "react-dom": "^19.1.1", "react-router-dom": "^7.9.1", diff --git a/ospabhost/src/App.js b/ospabhost/src/App.js index e7fafc5..6510b2a 100644 --- a/ospabhost/src/App.js +++ b/ospabhost/src/App.js @@ -1,20 +1,37 @@ -import React from 'react'; -import { BrowserRouter, Routes, Route } from 'react-router-dom'; -import Index from './pages/index'; -import Pricing from './pages/pricing'; -import Login from './pages/login'; -import Dashboard from './pages/dashboard/index'; -import './styles/tailwind.css'; +import React from "react"; +import { BrowserRouter as Router, Routes, Route } from "react-router-dom"; +import { AuthProvider } from "./context/AuthContext"; +import Navbar from "./components/Navbar"; +import Footer from "./components/Footer"; +import Home from "./pages/index"; +import Login from "./pages/login"; +import Register from "./pages/register"; +import Dashboard from "./pages/dashboard"; -export default function App() { +function App() { return ( - - - } /> - } /> - } /> - } /> - - + + +
+ {/* Навигация сверху */} + + + {/* Основной контент */} +
+ + } /> + } /> + } /> + } /> + +
+ + {/* Подвал */} +
+
+
); } + +export default App; diff --git a/ospabhost/src/components/Footer.tsx b/ospabhost/src/components/Footer.tsx index 233c109..1d8f4a5 100644 --- a/ospabhost/src/components/Footer.tsx +++ b/ospabhost/src/components/Footer.tsx @@ -1,7 +1,9 @@ const Footer: React.FC = () => { return ( -